只提交已解决文件的一部分?

时间:2015-02-17 14:46:11

标签: git git-merge git-commit

当我试图合并两个分支时,我会遇到很多冲突。我想要实现将合并过程分成几个步骤。

是否有可能解决git中的某些文件并将其提交到我的分支上?

1 个答案:

答案 0 :(得分:0)

你可以做的一件事就是改造而不是合并......这会迫使你为每一次提交修复冲突。我们假设您有分支master和分支feature并且没有推送功能,但您想将主内容中的内容合并到功能中。

git checkout feature
git rebase master

由于功能分支与主分支分离,将分支点移动到主分支,然后在顶部重放您的更改,这会倒回所有更改。 请注意,如果您已将feature推送到遥控器,这可能会很危险,因为它可能会重写已推送的历史记录......您应该事先知道这一点。另请参阅http://www.vogella.com/tutorials/Git/article.html#rebase_branches

但你可能想要做的是合并整个事情,但是有多个提交而不是一个单片合并提交。嗯,这有点可能,但你只能进行一次合并提交。 你能做的是:

git merge feature
git mergetool

然后修复所有冲突并保存并退出编辑器。现在所有的东西都是上演,但没有提交。现在您可以使用例如git gui从合并提交中取消更改(选择行并右键单击选择,然后选择' Unstage Lines From Commit'),提交初步合并提交,然后重新启动和一步一步地完成其余的工作。您仍然只有一个合并提交,但有几个后续提交。

我仍然认为这个想法是危险的,因为我怀疑那些中间的提交是好的提交(例如不可编辑的高变化)。