是否有一种方法可以查看分支中哪些文件发生了更改?


当前回答

Git什么改变似乎是一个很好的选择。

其他回答

我使用grep,所以我只得到diff -git的行,这是文件路径:

git diff branchA branchB | grep 'diff --git'
// OUTPUTS ALL FILES WITH CHANGES, SIMPLE HA :)
diff --git a/package-lock.json b/package-lock.json

你所要做的就是:

git checkout <notMainDev>
git diff --name-only <mainDev>

这将只显示两个分支之间不同的文件名。

考虑到你在一个特性分支上,你想要检查哪些文件与master…就在这个:

git diff --name-only master

我真的很喜欢@twalberg的回答,但我不想一直输入当前的分支名称。所以我用这个:

git diff --name-only $(git merge-base master HEAD)

如果真能这么简单呢?

git changed

如果您愿意假设主分支被称为“master”,并且您从master创建其他分支,那么您可以将这个别名添加到~/。Gitconfig文件使它变得简单:

cbranch = !"git branch | grep '*' | cut -f2 -d' '"
changed = !"git diff --name-only $(git cbranch) $(git merge-base $(git cbranch) master)"

这些假设在大多数情况下适用于大多数人,但你必须意识到你在做这些假设。

此外,您必须使用支持$()的shell。您的shell很可能支持这一点。