我想将我的分支合并到master
。我已经将我的分支上的所有内容都交给了主人。我需要git pull
来确保我及时更新,但是当我尝试git merge mybranch
时,我收到了错误
错误:由于您有未合并的文件,因此无法合并。
git status
显示了很多被修改的文件,大概来自我最近的拉动。我应该做git add .
`git commit -m"什么?",或者最好的方法是什么?为一组已经由各自作者提交自己的提交的更改进行提交似乎很奇怪?
答案 0 :(得分:1)
是的,这是一种方法:首先pull
(git会尝试自动合并已提取的文件)或fetch
- 然后您必须手动执行merge
。在完成后提交合并,然后推送所有更改。
还有另一种方式,git rebase
。我更喜欢它,但这取决于你和你的团队如何使用git,所以在你的情况下它可能是也可能不是正确的工具。
答案 1 :(得分:1)
不要使用git pull
。这会让你感到困惑。好吧,我认为它已经了!
git pull
执行的所有操作都是git fetch
(从其他Git获取新提交),然后是第二个Git命令。通常的第二个Git命令是git merge
。看起来你已经运行了这两个命令。在这种情况下,您运行git fetch origin
后跟git merge origin/master
。
此时可能发生的事情是第二个命令失败。但是,既然你不知道git pull
意味着 git fetch && git merge
,你所看到的就是这个奇怪的错误,它抱怨你是<你em>已经合并。现在你想要合并别的东西,但是你不能,因为你仍然处于早期失败的合并的中间。
如果您运行git fetch origin
,您会看到它有效。那么你就可以运行git merge origin/whatever
并看到它失败了,并且知道你必须完成这个合并,或者中止它,或者rebase,或者此时你想做的任何事情,在您git merge
另一个分支之前。
git pull
命令是一种方便,是执行两个Git命令的捷径,因为git fetch
几乎总是会跟随git merge
或git rebase
。所以当Git第一次构建时,他们只使用 用户前端git pull
,它使用了隐藏的后端git fetch
。但事实证明,将两个步骤分开是非常有用的,这样你就可以(例如)看到你有fetch
编辑的内容。他们使git fetch
只能被人类使用(好吧,和任何其他Git命令一样多:-)),以及git pull
如何方便。它是什么,除非现在不是这样。