我可以将分支合并到旧的提交并保留标记吗?
问题描述:
我的使用情况是这样的:我可以将分支合并到旧的提交并保留标记吗?
- 标记主V1.0
- 并在掌握一些变化
- 活虫意味着我需要打补丁V1.0
- 我从V1创建一个分支0.0承诺进行更改,并承诺
- 我然后标记分支V1.0.1
那么我想分支合并回主。如果我这样做,v1.0.1标签最终会在第2点的master上发生更改(正如您所期望的)。
我猜的答案是否定的,但反正是有分支合并到提交让我1.0.1标签附在提交V1.0之后和之前掌握的其他变化。实际上,我认为我的改变能够及时推进。
或者是问题真的是我的工作流程,我应该在一个分支使我在2的变化,只有合并他们掌握时,他们住。
答
标签是不变的,所以您的问题更多的是提交的顺序。
你可以做什么是分支1.0.1版的顶底垫master
:
git checkout master
git rebase v1.0.1
这样一来,在master
两个新的变化重播上V1.0.1
顶部。
如果您尚未发布master,rebase是将修复集成到当前分支的便捷方式。
请参阅 “git rebase
vs git merge
” 为多。
由于Graham指出的意见,如果你对master
变化已经推,重订他们可以拼写为有你的同事的麻烦已经退出master
。
请参阅“Rebasing and what does one mean by rebasing pushed commits”。
在这种情况下,它是韧皮到:
- 作出了“
next
”分支 - 合并
V1.0.1
的变化master
(当时反映什么在生产中运行的所有次) - 在
master
准备
(但如果next
需要时合并next
补丁,那么是的,你将被迫应用之后你的变化,因为上述变更已经发布,即推送到远程回购)
太棒了。 Git越发现我越了解它。 – Ian1971
您需要小心的一件事是在您已经推送代码后更改历史记录。如果你推动了,那么改变历史就意味着你必须强制推动 - 然后任何开发者都必须强制推动。强制它会导致人们失去工作,所以要小心。我会说是的,你的工作流程被打破了,你需要更多的分支。 –
@格拉汉姆:没错,这就是为什么我在回答中提到“如果你还没有发布高手”。欲了解更多,请参阅http://stackoverflow.com/questions/2715085/rebasing-and-what-does-one-mean-by-rebasing-pushed-commits – VonC