gpt4 book ai didi

git - 在git中删除 merge 的分支是否安全

转载 作者:行者123 更新时间:2023-12-05 01:19:37 24 4
gpt4 key购买 nike

假设我们在branch开发了一个feature,认为它已经完成,将它 merge 到master并删除了branch。后来在这个特定功能中发现了错误,有人去重置全局存储库上的 HEAD(你不应该这样做)。现在,我们可以修复那个错误,但不再有分支并且整个功能都丢失了。有没有办法恢复这些更改,在 merge 后保留功能分支一段时间总体上是个好主意吗?

最佳答案

假设 merge 前的提交历史是这样的。 before the merge

feature merge 到master后,就变成了这个。 after the merge

而现在分支feature被删除了,就变成了这个样子。 delete the feature branch

正如我们所见,尽管 ref feature 已经消失,但 feature 的提交历史仍然存在。分支引用只是一个变量,用于存储它从那时到现在指向的提交的 sha1 哈希值。

M 是在将 feature merge 到 master 时创建的 merge 提交(仅当它是真正的 merge ,非快进 merge 时) 。它有两个父级,D 第一个父级,master 指向,F 第二个父级,特征 指向。如果我们将 master merge 到 feature 并创建 M,那么 F 是第一个父级,而 D 第二个。

第一个父级可以通过M^ 引用,第二个父级可以通过M^2 引用。

现在如果你想重新创建分支引用 feature,假设 M 的值为 af2343242,你可以运行 git分支特征 af2343242^2。而且以后还会这样。 after the merge

is it overall good idea to preserve feature branches after merge for a while

这取决于。有些人认为保留所有曾经存在的更改是很好的,包括所有提交和所有分支、标签等。毕竟,这些都是项目的宝贵遗产。

关于git - 在git中删除 merge 的分支是否安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38915856/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com