我在Linux系统和mac中使用git。在我的Linux机器上,当我没有本地提交而我只是从源头git pull时,它只是转发到主线中的最新提交。但是,当我在我的mac中执行相同操作时,无论我是否有本地提交,它总是会创建合并提交。例如:
alias gln='git log --graph --pretty=format:'\''%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'\'' --abbrev-commit --date=relative -n'
原始状态(在Linux和Mac中):
gln 2
* 6b05c11 - (HEAD -> mainline, origin/mainline, origin/HEAD) Original HEAD commit message (1 year, 4 months ago) <User1>
* f8cf2ee - Very old commit message (1 year, 8 months ago) <User1>
Git pull in Linux (只是转发,没有合并提交)
gpl
gln 4
* ef1d887 - (origin/mainline, origin/HEAD) Remote commit message 2 (9 weeks ago) <User2>
* 190df9c - Remote commit message 1 (9 weeks ago) <User2>
* 6b05c11 - Original HEAD commit message (1 year, 4 months ago) <User1>
* f8cf2ee - Very old commit message (1 year, 8 months ago) <User1>
Git pull in Mac ,它拉动&amp;创建合并提交
gpl
gln 5
* 254b0c7 - (HEAD -> mainline) Merge branch 'mainline' of ssh:......../MyPackage into mainline (7 seconds ago) <Myself>
|\
| * ef1d887 - (origin/mainline, origin/HEAD) Remote commit message 2 (9 weeks ago) <User2>
| * 190df9c - Remote commit message 1 (9 weeks ago) <User2>
|/
* 6b05c11 - Original HEAD commit message (1 year, 4 months ago) <User1>
* f8cf2ee - Very old commit message (1 year, 8 months ago) <User1>
现在,我总是要做&#39; git rebase -i&#39;在我的Mac之后,每次拉动以摆脱合并提交(它只是显示一个noop消息并立即进行rebase)。
[问题] 是否有任何配置我可以更改以使我的mac git行为类似于我的linux git行为?
答案 0 :(得分:0)
发现问题&amp;得到了Can I make fast forwarding be off by default in git?&amp; drRobertz评论。
前一段时间我在我的Mac .gitconfig中添加了以下行(不知道是为了什么)。这导致了这个问题。
[branch "mainline"]
mergeoptions = --no-ff
删除它之后,我的git pulls正在工作而不添加合并提交(当我没有本地更改时)。