Git将修补程序分支合并到功能分支中,然后删除修补程序分支?

Git将修补程序分支合并到功能分支中,然后删除修补程序分支?,git,version-control,merge,branch,Git,Version Control,Merge,Branch,我对Git非常陌生,但它提供的轻量级分支/合并给我留下了深刻的印象 我的存储库中有三个分支: master 1.1.0 1.0.x 我在1.0.x分支中做了一个快速修复,但我想知道是否应该立即将这些更改合并回1.1.0?或者,是否建议等到1.1.0分支准备作为次要版本发布后再将修补程序合并回来 此外,在这幅图中: 对于这个例子,我假装ISS3=1.0.x和master=1.1.0。一旦我的1.0.x修补程序分支的更改被合并回1.1.0功能分支,我可以继续处理1.0.x分支吗 如果我在处理1.

我对Git非常陌生,但它提供的轻量级分支/合并给我留下了深刻的印象

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

master
1.1.0
1.0.x
我在
1.0.x
分支中做了一个快速修复,但我想知道是否应该立即将这些更改合并回
1.1.0
?或者,是否建议等到
1.1.0
分支准备作为次要版本发布后再将修补程序合并回来

此外,在这幅图中:

对于这个例子,我假装ISS3=1.0.x和
master=1.1.0
。一旦我的
1.0.x
修补程序分支的更改被合并回
1.1.0
功能分支,我可以继续处理
1.0.x
分支吗

如果我在处理
1.0.x
分支时提交了一个更改,那么在上述合并之后,它会仅仅从一个假设的
C7
提交创建一个新的水平链接(以直观的方式对其进行描述),并且只有一个父级
C5
,还是有两个父级
C5
C6


git book()的这一部分还提到在分支完成后删除分支,但遗憾的是,它们没有显示之后的图形。当然,提交仍然存在——只是简单地删除了标签吗?(
ISS3
在上面的例子中。)一旦该分支被删除,如果您发现问题53没有完全解决,您可以从
C5
继续工作,创建另一个
ISS3
分支,还是必须给它一个不同的名称,如
ISS3_2

只要您确定更改是好的并且需要进入该分支,我就会将其合并。早期合并更有可能在不需要手动操作的情况下成功:)

如果删除分支,则树将保持完全相同,只有分支的标签消失。如果您有从任何标签都无法访问的提交,那么它们最终可能会被垃圾收集删除,但垃圾收集会将它们保留几周,这里不是这样,因为您的所有提交仍然可以在某个分支中访问


您可以很容易地再次进行分支,只需执行“git checkout-b iss53 xxxxxx”,其中xxxxx是要基于它的提交的提交十六进制代码。git reflog有助于找到您需要的提交,因为它显示了所有最近的历史记录。

谢谢!“如果您有从任何标签都无法访问的提交,那么它们最终可能会被垃圾收集删除…”您可以对此进行扩展吗?我什么时候可以有一个无法访问的分支?在找到具有两个父级的合并提交(如C6)之前,我是否仍然能够跟踪父级?@CraigOtis我认为@jcoder意味着该提交应该在某个点进行垃圾收集,而此时它既不被其他提交引用,也不被标签引用。删除分支时,该分支将消失,其reflog也将消失。在图形中,删除ISS3,但所有提交都是安全的;但是删除主机,C4和C6是不安全的。