从合并中排除特定的块

时间:2018-10-13 20:26:32

标签: git merge

我在一个小项目上使用git进行源代码控制。我期望的工作流程是为功能的每个主要部分创建一个分支。每个分支都将包括正在开发的代码(以及所有支持代码)和相关的测试代码(我正在使用Python开发并使用doc test)。为了保持良好的历史记录并提供测试可重复性,我打算在每个分支上提交开发的代码和测试代码。特定功能的代码完成并正确测试后,我将其合并回主生产分支。

但是,我不想将测试代码合并到生产分支中。由于这涉及在我要合并的文件中不包括代码块,我该怎么做?在寻找答案时,我发现的是如何排除整个文件。

2 个答案:

答案 0 :(得分:1)

一种方法是进行合并Clip.antiAlias,在解决所有冲突之后,请执行--no-commit以在提交合并结果之前清除不需要的块。如果您忘了剥皮,可以很容易在git reset --patch之后进行重置。

答案 1 :(得分:0)

git cherry-pick是您要寻找的。最简单的方法是将已开发的代码和测试代码放在同一分支上的单独提交中(良好的做法是无论如何都具有小的,易于消化的提交),然后仅将已开发的代码放入主代码中。

  
      
  1. 在本地下拉分支。您可以使用git GUI或在命令行中将其下拉。
  2.   
  3. 回到要合并的分支中。您可以通过运行git checkout master来做到这一点。”
  4.   
  5. Cherry选择您想要的提交到该分支。转到git日志或GitHub UI,并获取唯一的提交哈希   您想要的每个提交,然后运行以下命令:git cherry-pick super-long-hash-here.   进入您当前的分支。
  6.   
  7. 像往常一样向上推这个分支。 git push origin master
  8.   

Quick git cherry-pick tutorial