拉取后是否有任何命令仅列出 git 中的自动合并文件。自动合并不会强迫我们看代码。有时我需要明确检查自动合并的文件。
Git 将更改的文件通常以三种类型混合在一起。新文件出现或旧文件被删除,自动合并和冲突。如果 git 在内部识别自动文件,所以我只是认为会有任何命令仅列出自动合并的文件。顺便说一下,我想在合并提交之前获取此列表。
为了清楚这个答案,让我们从一些定义和注释开始:
--no-commit
或遇到了合并冲突。如果是后者,您还没有解决这些冲突。HEAD
提交现在是该分支的尖端。因此,下面的短语“HEAD
提交”表示“进行合并之前的分支尖端”。根据您的评论回复,我相信您希望找到对提交有任何更改的文件HEAD
,即那些从入站提交中获取任何更改的文件,无论 git 是否在没有发现冲突的情况下合并了这些文件。
如果这是正确的,答案很简单:
git diff --cached --name-only
将列出它们。(这有点令人惊讶,因为git diff --cached
without--name-only
不显示未合并的文件。)
如果您只想要 git 已(或认为已)成功合并的文件:
git status --porcelain | awk '/^M / { print $2 }'
将列出那些。(省略awk
,并可选择使用-s
or--short
代替--porcelain
, 以查看 的输出git status
。在这种情况下,我们查找状态为“已合并,准备提交”的文件。具有合并冲突的文件将处于M
状态。)
您可能还想将文件与其基于合并的版本进行比较。除了在多个合并库的(有些罕见的)情况下,这并不太难。不过,我会将这些细节排除在此答案之外。