有没有一种方法可以查看分支中哪些文件发生了更改?
git show --stat origin/branch_name
如果你在一个功能分支上,并想要检查相对于主分支(master)发生了哪些文件变化,只需要这样做:
git diff --name-only master
关于什么?
git diff --name-only HEAD~1
git diff --name-only <notMainDev> $(git merge-base <notMainDev> <mainDev>)
- 非常接近正确,但我注意到它在删除方面的状态是错误的。我在一个分支中添加了一个文件,然而这个命令(使用--name-status
)给了我删除的文件“A”状态和我添加的文件“D”状态。git diff --name-only $(git merge-base <notMainDev> <mainDev>)
git diff branchA branchB | grep 'diff --git'
// OUTPUTS ALL FILES WITH CHANGES, SIMPLE HA :)
diff --git a/package-lock.json b/package-lock.json
@ECHO OFF
C: :: <== OR USE A DIFFERENT DRIVE
CD \path\to\where\git\files\are :: <== CHANGE TO THE ACTUAL PATH
SET /p b="Enter full path of an ALREADY MERGED branch to compare with origin/master: "
bash --login -i -c "git diff --name-only %b% $(git merge-base %b1% origin/drop2/master)"
PAUSE
bash --login -i -c "git difftool --dir-diff %b% $(git merge-base %b1% origin/drop2/master)"
基于@twalberg和@iconoclast所说的内容,如果出于某些原因你正在使用cmd,那么你可以使用:
FOR /F "usebackq" %x IN (`"git branch | grep '*' | cut -f2 -d' '"`) DO FOR /F "usebackq" %y IN (`"git merge-base %x master"`) DO git diff --name-only %x %y