防止git编写空的merge提交

Dou*_*oug 18 git

习惯于SVN,我总是在共享任何更改之前进行"更新",所以在进行任何推送之前我总是先拉.

当我拉动时(即使没有对遥控器进行任何更改)并且看到提交合并时,这很烦人0 changed files with 0 additions and 0 deletions.提交如下:https:
//github.com/UCF/Harvard-Mobile-Web/commit/be9d6b2d1ab196554e080d8b8647a9d16c8a5ddf

在查看提交历史时,我发现这是无用的噪音.

也许有一些我不知道的东西,这个提交有什么意义吗?如果没有,有没有办法阻止git编写空的合并提交?

cdh*_*wie 21

它的定义git pull基本上是"为我当前的分支获取和合并新的远程HEAD".如果你想改造,只需git pull --rebase.这会修改pull以在新的远程HEAD之上重新设置提交.

就个人而言,我喜欢git fetch(从远程下载新对象,但不更新任何本地分支)并检查情况,然后决定自己是合并还是变基.


nha*_*nha 6

有几种选择,都归结为同样的事情:git使用--rebase选项(如@cdhowie所述).

你可能会发现你更喜欢其中一个:

选项1:git pull --rebase每次都明确使用.

选项2:对于每个项目,.git/config通过添加修改文件

[branch "master"]
 remote = origin
 merge = refs/heads/master
 rebase = true
Run Code Online (Sandbox Code Playgroud)

选项3:在您的个人~/.gitconfig

[branch]  
  autosetuprebase = always
Run Code Online (Sandbox Code Playgroud)

我个人喜欢选项3,因为它允许我不对其他开发人员强制执行任何操作,同时仍然不必--rebase每次都输入.

另请参阅如何使我的所有存储库默认使用Git pull使用rebase?