习惯了SVN,我总是在共享任何更改之前进行'更新',所以在推送之前我总是先拉。
当我拉动时很烦人(即使遥控器没有任何变化)并且看到与0 changed files with 0 additions and 0 deletions
合并的提交。承诺如下:
https://github.com/UCF/Harvard-Mobile-Web/commit/be9d6b2d1ab196554e080d8b8647a9d16c8a5ddf
在查看提交历史时,我发现这是无用的噪音。
也许有一些我不知道的东西,这个提交有什么意义吗?如果没有,有没有办法阻止git编写空的合并提交?
答案 0 :(得分:21)
git pull
的定义本质上是“为我当前的分支获取和合并新的远程HEAD”。如果你想改造,只需要git pull --rebase
。这会修改pull以在新的远程HEAD之上重新设置提交。
就个人而言,我喜欢git fetch
(从远程下载新对象,但不更新任何本地分支)并检查情况,然后自行决定是合并还是变基。
答案 1 :(得分:5)
有几个选项,都归结为同样的事情:使git
使用--rebase
选项(如@cdhowie所述)。
您可能会发现您更喜欢其中之一:
选项1:每次都明确使用git pull --rebase
。
选项2:,通过添加
修改.git/config
文件
[branch "master"]
remote = origin
merge = refs/heads/master
rebase = true
选项3 :在您的个人~/.gitconfig
[branch]
autosetuprebase = always
我个人喜欢选项3,因为它允许我不对其他开发人员强制执行任何操作,同时仍然不必每次都输入--rebase
。
另见How to make Git pull use rebase by default for all my repositories?