我正处于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.
答案 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
正常运作“正确的方式”)。