繁体   English   中英

Git,合并分支git

[英]Git, merging branches git

我不明白为什么我的合并会更新一个提交...看起来它正在更新提交添加颜色,而不是将母版与硬币合并。 当我尝试合并这些分支时,Sublime不会弹出。 有人可以帮助我吗? 此外,当我输入git commit时,我有:

在分支母版上您的分支比“原始/母版”提前2次提交。 (使用“ git push”发布您的本地提交)无任何提交,工作树干净

在此处输入图片说明

我不确定您的问题是什么,但是您可能无法完全理解这里发生的两件事。

首先,我认为git merge master coins并没有您认为的那样。

git merge master coins 并没有说将master合并成coins 它说将master coins合并到当前签出的分支中。 这是因为master coins是要合并到当前分支中的分支的列表。 从文档 ...

[git merge]将命名提交的更改(自其历史记录与当前分支分开以来的时间) 合并到当前分支中

如果检出了master ,则它将硬币合并到母版中。 如果检出了coins ,则它将master合并为coins 如果签出了其他内容,您将得到所谓的“章鱼合并”,并且mastercoins和当前分支这三个都合并在一起,可能是一团糟。

就目前而言,您已与已检出的master合并,因此git merge master coinsgit merge coins相同。 您将coins合并master ,我想这是您想要的,但是它可能变糟了。

因此,请勿使用该语法。 它会给您带来麻烦,并且通过查看命令历史记录很难知道实际发生了什么。 而是使用git checkout branch-to-merge-into; git merge branch-to-merge-from git checkout branch-to-merge-into; git merge branch-to-merge-from 因此,如果要将硬币合并成master,请使用git checkout master; git merge coins 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 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 git checkout master; git merge feature ,只需将master移至H。

                      [master]
A - B - C - E - F - H [feature]

Git之所以可以这样做是因为“分支”实际上只是指向提交的标签。 现在, masterfeature指向同一提交。


我建议在合并要素分支时避免快进,因为它会丢失重要的考古信息。 稍后查看存储库的人无法分辨E,F和H都是作为单个分支完成的。

我建议始终将功能分支与git merge --no-ff 这迫使Git进行合并提交,将来尝试弄清楚您的代码的人可以知道E,F和H都是更大整体的一部分。

A - B - C --------- I [master]
         \         /
          E - F - H [feature]

合并提交I还为您提供了一个描述分支的地方,并添加了指向问题/错误/票证的链接之类的内容,以描述分支的用途。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM