之间的原始提交会发生什么?-6ren"> 之间的原始提交会发生什么?-关于git man page for rebase你可以找到一个 rebase 分支的例子。 H---I---J topicB -6ren">
gpt4 book ai didi

git - 在 "git rebase --onto"之后 之间的原始提交会发生什么?

转载 作者:太空狗 更新时间:2023-10-29 14:47:50 26 4
gpt4 key购买 nike

关于git man page for rebase你可以找到一个 rebase 分支的例子。

                        H---I---J topicB
/
E---F---G topicA
/
A---B---C---D master

命令 git rebase --onto master topicA topicB 会产生 ...

             H'--I'--J'  topicB
/
| E---F---G topicA
|/
A---B---C---D master

...据我了解 rebase ,这是相当合理的。不幸的是,下一个示例显示了不同的输出。基本上它描述了如何使用 rebase 来删除提交:

E---F---G---H---I---J  topicA

根据手册页调用 git rebase --onto topicA~5 topicA~3 topicA 会产生 ...

E---H'---I'---J'  topicA

...,因此,“删除 FG”。

但实际上我看不出第一个例子和第二个例子有什么大的区别:

        H---I topicA
/
F---G topicA~3
/
E topicA~5

所以结果应该更像

 H'--I'--J'  topicB
/
| F---G
|/
E

FG 是否仍然存在,或者它们真的被移除了?至少 gitk 向我展示了 FG 甚至 HIJ。这是无法访问的提交吗?一段时间后它们会被“垃圾收集”吗?或者我的磁盘上会永远存在(甚至推送到远程)。这也可以应用于第一个示例吗? HIJ 还在吗?

最佳答案

它们没有被删除,提交仍然存在,如果您知道提交,您可以检查它们、标记它们、创建分支等。git reflog 命令可以帮助找到它们。

如果没有任何内容指向它们,它们最终将被垃圾回收。 This页面告诉你更多相关信息。默认情况下,它是在 90 天之后。

关于git - 在 "git rebase --onto"之后 <upstream> 和 <branch> 之间的原始提交会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16193565/

26 4 0