我如何提交git自动合并的所有内容? (暂时忽略冲突)

时间:2015-02-28 21:29:02

标签: git merge merge-conflict-resolution

我正处于git merge --squash --no-commit操作的中间。有些文件是由git成功合并的,而其他一些文件则表示为“已修改”(未合并的更改)。

我想提交git能够合并的所有内容(包括冲突文件中的部分更改),因此在稍后的实现中只留下实际的“冲突部分”,在不同的提交中。

请注意,如果我只是致电git commit,我会收到:

error: commit is not possible because you have unmerged files.
hint: Fix them up in the work tree, and then use 'git add/rm <file>'
hint: as appropriate to mark resolution and make a commit.
fatal: Exiting because of an unresolved conflict.

2 个答案:

答案 0 :(得分:0)

提交前只需git add文件,即使有冲突信息。

git merge conflicting-branch
git add ./conflicting-file
git commit ...

答案 1 :(得分:0)

这是我正在使用的“解决方法”,但这很乏味:

要将未合并的更改转换为未分级,请为每个未合并的文件更改调用git reset HEAD。我想知道是否有更好的方法(git reset有一个--merge标志,但它没有做我需要的。)

现在提交“有效”,但是一些有用的更改(即:git自动解决的更改)将被保持为非分页,因为它们位于冲突的文件中。为了添加这些有用的更改,请调用git add -p并完成所有更改(将每个不属于冲突的块放在舞台上)。

git commit结束(现在git diff将返回 冲突,而git difftool将在合并时git mergetool正常运作“正确的方式”)。