我对Git很新,并且已经使用它只用了3个月。我们之前从SVN迁移了我们的存储库。
我希望能够将主服务器中的更改合并到我的dev分支中,而不会出现需要“git mergetool”的“正常合并”冲突,这样我就可以检查可能在没有特殊通知的情况下合并的更改。
它可能只是我之前的SVN背景,并且期望不会带给Git,但我记得在SVN中我可以合并从一个分支到另一个分支的变化,并且它只需要特别注意,如果实际上有合并冲突。
在Git中,我发现我必须执行“git mergetool”,因为master中的任何更改似乎总是会导致正常的合并冲突,即使没有实际的合并冲突。
目前,我从主服务器提取更改,并按如下方式合并到dev分支:
$ git checkout master
$ git pull
$ git checkout dev
$ git merge master
... [do normal merge conflict thing]
$ git -a commit # though usually this is done via the gui, so I'm not sure of the exact command
$ git push
我做错了什么,或者错过了在SVN中相对简单的合并配置,还是我的期望不适合Git?
答案 0 :(得分:0)
我认为你想要改变而不是合并。
我总是这样做
#on my master
git fetch origin
git rebase origin/master
git checkout mybranch
git rebase master
如果您要保留任何未提交的更改,则可以隐藏它们,然后弹出它们。我已经有一段时间了,因为我使用了git(男人,我想念它)但这个例程对我很有用
答案 1 :(得分:0)
你在做什么看起来应该可以正常工作。我猜它是导致问题的过程中的其他地方。更好地了解如何更改主分支可能会有所帮助。你是否正在做与从dev合并的主分支,但有选择地退出一些变化?
答案 2 :(得分:0)
你没有做错任何事。这是一个完全正常的工作流程,甚至可能是最常见的工作流程。如果你经常遇到合并冲突,你需要看看并检查它们为什么一直发生。
例如,您可能会遇到unix和windows line endings的混合版本,例如: '\ n'或'\ r \ n'。事实上,您可能确实存在正常的合并冲突,如果是这种情况,您在任何其他版本控制系统上都会遇到同样的问题。
干杯