将Git热修复分支合并到功能分支,然后删除热修复分支?

3
我是一个有用的助手,可以翻译文本。

我对Git非常陌生,但非常欣赏它提供的轻量级分支/合并功能。

我的存储库中有三个分支:

master
1.1.0
1.0.x

我已经在1.0.x分支中进行了快速修复,但我想知道是否应该立即将这些更改合并回1.1.0分支?还是建议等到1.1.0分支准备好作为次要版本发布后再将热修复合并回去?
此外,在这张图片中:

git-scm branching

我假装在这个例子中,iss53 = 1.0.xmaster = 1.1.0。一旦从我的1.0.x热修复分支合并回1.1.0特性分支的更改完成后,我可以继续在1.0.x分支上工作吗?
如果我在1.0.x分支上工作时提交更改,在上述合并之后,它会创建一个新的水平链接(为了形象化),从假设的C7提交到单个父项C5,还是会有两个父项C5C6

这部分git-book(Git - Basic Branching and Merging)还提到了在分支完成后删除分支,但不幸的是,他们没有展示图表在删除后会是什么样子。肯定提交记录仍然存在-仅仅是标签被删除了吗?(在上面的例子中为iss53)。并且一旦该分支被删除,如果您发现问题53没有完全解决,您可以从C5继续工作,创建另一个iss53分支,或者您必须给它取一个不同的名称,比如iss53_2

1个回答

1

如果你确定更改是好的并且需要进入该分支,那么尽快合并它。提前合并更有可能在不需要手动操作的情况下成功 :)

如果您删除分支,则树将保持完全相同,只有分支的标签消失。如果您有无法从任何标签到达的提交,则它们可能最终被垃圾收集删除,但它会将它们保存几周,并且这里没有这种情况,因为所有提交仍然可以通过某些分支访问。

您可以轻松地再次创建分支,只需执行 "git checkout -b iss53 xxxxxx",其中 xxxxx 是您要基于其构建的提交十六进制代码。 git reflog 对于帮助找到所需提交非常有用,因为它显示所有最近的历史记录。


谢谢!“如果您有提交不再从任何标签可达,则它们最终可能会被垃圾回收删除...”您能详细说明一下吗?我什么时候会有一个无法访问的分支?我是否仍然能够跟踪我的父级,直到找到具有两个父级的合并提交(如C6)? - Craig Otis
1
@CraigOtis 我认为 @jcoder 的意思是当提交既不被其他提交引用也没有标签时,应该在某个时候进行垃圾回收。当您删除一个分支时,该分支和其引用日志也会消失。在您的图表中,删除 iss53 但所有提交都是安全的;但删除主分支,则 C4 和 C6 不安全。 - ivzhh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接