【发布时间】:2020-10-26 20:25:01
【问题描述】:
基于以下git场景:
C0 (master)
\
\
C1-------------C5 (develop)
\ /
\ /
C2--C3--C4 (feature)
我有一个新的未提交文件,我想将它作为提交 C0 的一部分添加到 master 中。所以我所做的就是checkout master然后修改以便将文件添加到C0中。
一切看起来都找到了,但我遇到的问题是 C0 哈希更改并导致 C1 丢失引用。
C0 (master)
C1-------------C5 (develop)
\ /
\ /
C2--C3--C4 (feature)
我基本上是 git 新手,我确定我做错了什么。对于如何再次“链接”C0 和 C1,我将不胜感激。
可能是最佳实践,应该是在master中创建一个新的提交(C6),然后在develop中合并,但我想知道是否有办法为未来的情况解决此类问题,也许“修改”到当前提交是最好的选择。
【问题讨论】:
-
“修改”一个提交确实总是会产生一个 new 提交;现有的提交继续存在不变。如果旧提交 only 是某个分支中的最后一个提交(并且在某个其他分支中也不存在/可见),则它被替换为具有不同哈希 ID 的新改进提交不是很明显,除非你写下了所有的哈希 ID。但是,如果它以其他方式可见,那么无论使用旧提交的人仍在使用旧提交,现在您有两个可见的提交。
标签: git commit git-amend orphan