我是 Git 的新手,但它提供的轻量级分支/merge 功能给我留下了深刻的印象。
我的存储库中有三个分支:
master
1.1.0
1.0.x
我已经在 1.0.x
中进行了快速修复分支,但我想知道我是否应该立即将这些更改 merge 回 1.1.0
?或者建议等到1.1.0
分支是否准备好作为次要版本发布以 merge 修补程序?
此外,在这张图片中:
我假装 iss53 = 1.0.x
和 master = 1.1.0
对于这个例子。一旦我的 1.0.x
发生变化修补程序分支已 merge 回 1.1.0
功能分支,我可以继续处理 1.0.x
吗?分支机构?
如果我在处理 1.0.x
时提交更改分支,在上面的 merge 之后,它是否会从假设的 C7
中创建一个新的水平链接(为了直观地描绘它)提交,单亲 C5
,或者它有两个 parent ,C5
和 C6
?
git-book 的这一部分 ( Git - Basic Branching and Merging ) 也提到在完成后删除分支,但不幸的是,它们没有显示图表之后的样子。 当然是提交还在那里——标签是否被简单地移除了? (在上面的示例中为 iss53
。)一旦该分支被删除,如果您发现问题 53 没有完全修复,您可以从 C5
继续工作吗 , 创建另一个 iss53
分支,或者你必须给它一个不同的名字,比如 iss53_2
?
最佳答案
一旦您确定更改是好的并且需要进入该分支,我会尽快 merge 它。越早 merge 更有可能在没有手动操作的情况下成功 :)
如果删除分支,树将保持完全相同,只是分支的标签消失。如果您的提交不再可以从任何标签访问,那么它们最终可能会被垃圾收集删除,但它会保留它们几个星期,这里不是这种情况,因为您的所有提交仍然可以在某些分支中访问。
您可以轻松地再次创建分支,只需执行“git checkout -b iss53 xxxxxx”,其中 xxxxx 是您要基于的提交的十六进制代码。 git reflog 有助于找到您需要的提交,因为它显示了所有最近的历史记录。
关于Git 将修补程序分支 merge 到功能分支,然后删除修补程序分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15248003/