把我的所有提交压缩成一个GitHub拉取请求

我在GitHub上做了一个pull请求。 现在,存储库的所有者正在说要将所有提交压缩成一个。

当我inputgit rebase -i记事本打开时显示以下内容:

 noop # Rebase 0b13622..0b13622 onto 0b13622 # # Commands: # p, pick = use commit # r, reword = use commit, but edit the commit message # e, edit = use commit, but stop for amending # s, squash = use commit, but meld into previous commit # f, fixup = like "squash", but discard this commit's log message # x, exec = run command (the rest of the line) using shell # # These lines can be re-ordered; they are executed from top to bottom. # # If you remove a line here THAT COMMIT WILL BE LOST. # # However, if you remove everything, the rebase will be aborted. # # Note that empty commits are commented out 

我在Google上search,但我不明白如何做到这一点。

只是一个简单的补充来帮助别人寻找这个解决scheme。 你可以传入你想要压扁的先前提交的数量。 例如,

 git rebase -i HEAD~3 

这将在编辑器中提出最后3个提交。

好吧,我想出来了…首先,我必须写git rebase -i xxxxxxxxxxxxxxxx其中xxxxxxxxxx是我要压扁的提交的SHA。 然后在记事本中,我编辑了第一个作为select和余下的所有作为壁球。 然后一个新的记事本窗口将会出现在第一行,我input了我的新提交的名称。 然后我不得不做一个推动力:

 git push --force origin master 

尝试git rebase -i ,并使用“squash”来提交所有要提交的提交。

编辑:

git rebase -i将向您展示一个交互式编辑器,其中包含您要重定义的提交列表。 在每次提交之前的默认命令是“pick”,所以你只需要对所有你想压缩的提交进行挑选/压缩/压缩,然后所有提交都将压缩到最后一次提交。

确保你正在重build一个正确的分支。

从2016年4月1日起 ,资源库pipe理器可以通过在拉取请求中select“压扁和合并”选项,将拉取请求中的所有提交压缩为单个提交。

壁球和合并选项

当然,如果你还想在合并之前手动压缩提交, fontno的答案是最好的解决scheme。