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

标签 git version-control merge branch

我是 Git 的新手,但它提供的轻量级分支/merge 功能给我留下了深刻的印象。

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

master
1.1.0
1.0.x

我已经在 1.0.x 中进行了快速修复分支,但我想知道我是否应该立即将这些更改 merge 回 1.1.0 ?或者建议等到1.1.0分支是否准备好作为次要版本发布以 merge 修补程序?

此外,在这张图片中:

git-scm branching

我假装 iss53 = 1.0.xmaster = 1.1.0对于这个例子。一旦我的 1.0.x 发生变化修补程序分支已 merge 回 1.1.0功能分支,我可以继续处理 1.0.x 吗?分支机构?

如果我在处理 1.0.x 时提交更改分支,在上面的 merge 之后,它是否会从假设的 C7 中创建一个新的水平链接(为了直观地描绘它)提交,单亲 C5 ,或者它有两个 parent ,C5C6

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/

相关文章:

Git:意外地将冲突注释 merge 到分支中。我该如何删除它们?

git - 从更新的基本分支获取更改到我的功能分支

敏捷分支工作流的 Git merge 策略

Git - 远程头未正确更新

git - 如何在 git 中重新分配哪个文件被重命名为哪个文件?

git - git reset --hard origin/master 是什么意思?

svn - 从SVN的两个不相关分支合并一个文件的正确方法

video - 将两个 FFMPEG 命令合并/组合成一个命令

c# - 如何在 C# 中将两个 List<dynamic> 对象合并为一个具有特定条件的对象?

git - 您如何在 Git for Puppet 中安全地存储 TLS/SSL key 文件?