【发布时间】:2015-06-23 04:25:30
【问题描述】:
我为某个存储库的一个分支做出了巨大贡献。那么如果其他人将该分支合并到主分支中,我的贡献会丢失吗?
例如:我对分支 A 做了 100 次提交,如果其他人将分支 A 合并到主分支中,我在分支 A 中的 100 次提交是否会在合并后显示在主分支中?
我在 Github 上。
最好的问候
【问题讨论】:
我为某个存储库的一个分支做出了巨大贡献。那么如果其他人将该分支合并到主分支中,我的贡献会丢失吗?
例如:我对分支 A 做了 100 次提交,如果其他人将分支 A 合并到主分支中,我在分支 A 中的 100 次提交是否会在合并后显示在主分支中?
我在 Github 上。
最好的问候
【问题讨论】:
直接回答是“是”,但有一些微妙之处:
“合并”命令将查看分支 A 和主分支之间的所有差异,并将这些修改应用于主分支。它将在包含所有这些修改的主分支上创建一个提交。
如果你想在 master 分支上应用分支 A 的每一个提交,你需要使用“rebase”命令。它将查看分支 A 上的提交,并在主分支上应用所有这些提交的副本。
您可以决定是只检索分支 A 的最终状态,还是按照正确的顺序完成所有修改。
【讨论】:
这正是合并的作用。在合并之前,您的历史记录类似于
D (master)
|
C E100 (branchA)
| .
| .
| .
B E1
| /
A
合并后的样子
E (master)
| \
D |
| |
C E100 (branchA)
| .
| .
| .
B E1
| /
A
无论您之后是否删除 branchA,提交 E1 到 E100 将始终可以通过提交 E 访问。(请记住,删除分支只会删除指向提交的指针,而不是提交本身。)
【讨论】:
是的。 合并后,分支的名称无关紧要,因为它只是一个标签,指向您所做的最后一次提交,它与 master 相同,因此“无用”。
您的问题实际上并不清楚,但 git 确保您永远不会丢失已提交的更改。
【讨论】: