在git diff中显示未更改的文件

3

我正在使用git比较两个分支上的路径以准备合并。我想列出该路径下的所有文件,并使用git diff列出它们的状态,而不仅仅是更改的文件。

示例:

我有一个仓库,目前在main分支上,其中有3个文件:

$ git status
On branch main
nothing to commit, working tree clean

$ ls -1
a.file
b.file
c.file

在第二个分支new-branch上,我进行了三次更改:

  • 删除b.file
  • 更改c.file
  • 创建d.file
$ git status
On branch new-branch
nothing to commit, working tree clean

$ ls -1
a.file
c.file
d.file

使用git diff命令,我可以列出所有更改文件的名称和状态:

$ git diff --name-status main new-branch
D       b.file
M       c.file
A       d.file

这几乎就是我想要的:我还想在这个列表中找到a.file。就像这样:

        a.file
D       b.file
M       c.file
A       d.file

这是否可以使用git diff来实现?或者使用git show
1个回答

2
请使用以下代码。
git ls-files | while read -r line;
do
    st=$(git diff --name-status main new-branch "$line");
    if [ -n "$st" ]; then
        echo "$st";
    else
        echo "   $line";
    fi;
done

git ls-files:显示Git控制的所有文件。

git diff --name-status main new-branch "$line" 我们将使用git diff查看特定文件。

注意:您只需将上述代码粘贴到终端中即可。


@LodeRunner. 你对我的解决方案有困难吗? - Thân LƯƠNG Đình

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接