我不明白我的合并为什么要更新一个提交..。它看起来更新提交添加颜色,而不是合并主硬币。当我试图合并这些分支时,崇高不会弹出。有人能帮我吗?此外,当我键入git提交时,我拥有:
在分支大师上,您的分支比“起源/主人”领先2次提交。(使用"git push“发布本地提交)没有提交,工作树干净

发布于 2017-01-13 22:16:33
我不知道你的问题是什么,但我认为这里有两件事你可能不完全理解。
首先,我不认为git merge master coins会像你想的那样做。
git merge master coins 没有说要将master合并成coins。它说要将master 和 coins合并到当前签出的分支中。这是因为master coins是要合并到当前分支的分支列表。从医生那里...
diverged将来自命名提交的更改(自从它们的历史从当前分支中分离出来)合并到当前分支中。
如果master被检出,那么它就把硬币合并成主人。如果签出coins,则将master合并到coins中。如果签出了其他内容,您就会得到所谓的“章鱼合并”,而这三者,master、coins和当前的分支都被合并在一起,可能是一个大混乱。
就目前情况而言,您与master签出了合并,因此git merge master coins与git merge coins相同。您将coins合并到master中,我认为这是您想要的,但它可能会变坏。
所以不要使用这种语法;它会给您带来麻烦,通过查看命令历史很难知道实际发生了什么。相反,请使用git checkout branch-to-merge-into; git merge branch-to-merge-from。所以如果你想把硬币合并成大师,git checkout master; git merge coins。
下一期是关于快进合并。这是Git在不需要合并时所做的事情,当分支没有分叉时。例如,假设你有这个..。
A - B - C - D - G [master]
\
E - F - H [feature]因为master有与feature (D和G)不相同的变化,所以它必须合并。因此,git checkout master; git merge feature将产生一个新的合并提交。
A - B - C - D - G - I [master]
\ /
E - F - H [feature]但是,如果在master上没有新的提交,那么就有了这个(master指向C)。
[master]
A - B - C - E - F - H [feature]据说feature并没有偏离master。不需要合并提交,因此Git不需要提交合并提交。当您执行git checkout master; git merge feature时,它只需将master移动到H。
[master]
A - B - C - E - F - H [feature]Git可以做到这一点,因为“分支”实际上只是指向提交的标签。现在,master和feature指向相同的提交。
我建议在合并特征分支时避免快速转发,因为它丢失了重要的考古信息。稍后查看存储库的人无法判断E、F和H都是作为一个分支完成的。
我建议始终将特性分支与git merge --no-ff合并。这迫使Git进行合并提交,而在将来试图计算代码的人可以知道E、F和H都是一个更大的整体的一部分。
A - B - C --------- I [master]
\ /
E - F - H [feature]合并提交,我,还为您提供了一个描述分支的位置,并添加了指向描述分支的发布/bug/票证的链接。
https://stackoverflow.com/questions/41642918
复制相似问题