设置可以与master一起更新的调试分支

时间:2013-06-15 17:45:48

标签: git git-merge

我有两个分支 debug 。如果我尝试将 debug 合并到 master 分支,它会快进。所以我使用以下命令来避免快进:

$ git merge --no-ff debug
Merge made by the 'recursive' strategy.
file.txt |  117 +++++++++++++++++++++++++++-----------------------------------
1 files changed, 51 insertions(+), 66 deletions(-)

这对我来说似乎仍然是快节奏的。如何手动合并? 由于git不按我想要的方式运行,我开始怀疑我使用git是否错误,或者我没有遵循其他开发人员所期望的做法。

我希望有一个包含所有调试选项,注释和打印语句的分支,并且实际上在代码上取得了进展。在调试分支中正常工作之后,我想将它合并到 master 分支只是工作代码,而不是用于调试的额外信息。这是在git上进行版本控制的有效方法吗?

1 个答案:

答案 0 :(得分:1)

合并在你的情况下解决为快进只是因为分支“master”在你合并时完全包含在分支“debug”中 - 也就是说,没有什么可以合并,因为没有分歧。

现在的问题是:您如何将调试分支合并为“master”,以便它不会收到不需要的代码块(那些调试打印输出语句等)?你已经为自己回答了吗?我的意思是,使用--no-ff是一种可行的方法(某些工作流甚至建议总是使用它)但是为什么你也不使用--no-commit - 实际上在提交前删除不需要的代码?

换句话说,在我看来,你出于某种原因决定这应该有用:

  1. 在“主”分支中有一个“原始”代码。
  2. 将“master”的“调试”分支分开。
  3. 在那里添加一些新代码,在那里添加一些调试代码。
  4. 将“debug”合并回“master”并期望此操作以某种方式仅将非调试代码带入。
  5. 显然,这不会起作用:Git无法知道合并时哪个代码可以带来,哪个代码正在调试。