我对Git很陌生,但它对它提供的轻量分支/合并印象非常深刻。
我的存储库中有三个分支:
master
1.1.0
1.0.x
我已经在1.0.x
分支中快速修复了,但我想知道是否应立即将这些更改合并回1.1.0
?或者是否建议等到1.1.0
分支准备好作为次要版本发布以将修补程序合并回来?
而且,在这张图片中:
我假装iss53 = 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(Git - Basic Branching and Merging)的这一部分也提到在完成后删除分支,但遗憾的是之后没有显示图形的样子。当然提交仍然存在 - 标签被删除了吗? (上例中的iss53
。)删除该分支后,如果发现问题53未完全修复,可以继续C5
工作,创建另一个iss53
分支,或者你必须给它一个不同的名字,比如iss53_2
?
答案 0 :(得分:1)
一旦你确定改变是好的并且需要进入那个分支,我就会合并它。如果没有人工努力,之前的合并更有可能成功:)
如果删除分支,树将保持完全相同,只有分支的标签消失。如果您的提交不再可以从任何标签访问,那么它们最终可能会被垃圾收集删除,但它会使它们保持几周,而这种情况并非如此,因为所有提交仍然可以在某个分支中访问。 / p>
您可以轻松地再次创建分支,只需执行“git checkout -b iss53 xxxxxx”,其中xxxxx是您希望以其为基础的提交的提交十六进制代码。 git reflog对于帮助查找所需的提交非常有用,因为它显示了所有最近的历史记录。