git只在几个文件中合并一些选定的源代码片段

时间:2011-09-20 09:03:35

标签: git

git版本1.7.5.4     Ubuntu 11.10

是否可以在几个文件中合并一些选定的源代码?

我一直在研究两个不同的分支,即branch1和branch2。

目前我在branch2上,并且我想将branch1添加到branch2进行一些更改。

我想要的所有选定部分都在branch1上进行一次提交。

我可以切换到branch1复制更改,然后切换回branch2并粘贴它们。但是,我宁愿学习git如何为我做这个。

另外,我担心如果我使用git,我可以在branch2中合并我不想要的branch1的一些更改。这就是为什么我想通过选择碎片来做到这一点。

非常感谢任何建议,

1 个答案:

答案 0 :(得分:1)

这不是git的工作方式。合并提交时,要么合并整个提交,要么不合并任何提交 - 否则,历史图表的完整性会受到影响。

你能做的是:

  1. git checkout -b temp_branch branch2
  2. git checkout branch1 /path/to/file/with_changes
  3. 对所涉及的每个文件重复步骤#2。
  4. git reset HEAD
  5. git add -p并且只展示您想要的文件更改部分。
  6. git commit
  7. git checkout -f branch2
  8. git merge temp_branch
  9. 这将在一个新的,不同的提交中与那些具有部分更改的branch1合并 - 但请注意,如果您以后将branch1合并到branch2,则必须手动解决冲突,因为创建新的部分-changes commit是一个独立的,独特的历史分支。