我可以将分支合并到旧的提交并保留标记吗?

我可以将分支合并到旧的提交并保留标记吗?

问题描述:

我的使用情况是这样的:我可以将分支合并到旧的提交并保留标记吗?

  1. 标记主V1.0
  2. 并在掌握一些变化
  3. 活虫意味着我需要打补丁V1.0
  4. 我从V1创建一个分支0.0承诺进行更改,并承诺
  5. 我然后标记分支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补丁,那么是的,你将*应用之后你的变化,因为上述变更已经发布,即推送到远程回购)

+0

太棒了。 Git越发现我越了解它。 – Ian1971

+0

您需要小心的一件事是在您已经推送代码后更改历史记录。如果你推动了,那么改变历史就意味着你必须强制推动 - 然后任何开发者都必须强制推动。强制它会导致人们失去工作,所以要小心。我会说是的,你的工作流程被打破了,你需要更多的分支。 –

+0

@格拉汉姆:没错,这就是为什么我在回答中提到“如果你还没有发布高手”。欲了解更多,请参阅http://*.com/questions/2715085/rebasing-and-what-does-one-mean-by-rebasing-pushed-commits – VonC