Git-从上游隐藏合并提交

时间:2018-10-26 22:18:02

标签: git github merge pull-request

我在Github上使用以下工作流程进行项目。

  1. 分叉存储库
  2. 将基础master合并为分叉的master
  3. 从派生的master创建分支并实现一些东西
  4. 创建从我的分支到基础master的拉取请求
  5. 经过检查和审查,维护者将我的分支合并到基础master
  6. 转到2。

问题是2。起初我没有git的经验,所以我通过fork中的pull请求做到了这一点。现在,我做git pull upstream && git merge upstream/master,它将创建一个新的合并提交。经过一些此类合并后,我的PR如下所示: Bunch of merge commits

如您所见,有一堆合并提交。这确实很丑陋,而且可能很难理解我要合并的内容。而且,每当我将基础master合并到fork时,此列表都会增加。

是否可以隐藏/删除它们?目前,我只能考虑在每次PR完成后删除并重新创建fork,但这并不好,因为我可能在A上工作,然后切换到B,合并B,再回到A等。 git rebase实际上不会隐藏它们:合并的提交在PR中与$user authored and $me commited一起列出。

1 个答案:

答案 0 :(得分:0)

要修复当前“断开”的PR,可以将所有提交squash合并为一个提交。您可以在命令行上使用git rebase -i进行此操作,然后在除第一次提交外的所有内容上将pick更改为squash

GitHub实际上也为您实现了这一点-如果您单击Merge pull request按钮旁边的下拉列表,则Squash & merge会有一个选项,其作用相同。