关于git diff:如何只列出两个分支之间有变化的文件名?

How to list only file names that have changes between two branches?

我的存储库中有两个分支,我想对一些文件进行比较。

我只想列出这两个分支之间新添加的迁移

比如:

1
git diff branch1 branch2 | grep /db/migrate

谢谢你的帮助


这个命令将区分它们的整个历史

git diff branch1..branch2 --name-only

如果你想和他们的上一个共同祖先比较,那么

git diff branch1...branch2 --name-only

现在您可以对所需的文件进行grep。从那里可以很容易地编写一个小小的shell脚本,它可以逐个文件地区分两个分支。

1
2
3
4
5
6
7
 filenames=$(git diff branch1...branch2 --name-only | grep /db/migratons)
 IFS=' '
 read -r -a filearr <<<"$filenames"
 for filename in"${filearr[@]}"
 do            
      echo $(git diff branch1...branch2 --"$filename")
 done

创建git命令名文件并将其放入user/bin文件夹(您应该将输入分支参数化为变量)

Git会将其识别为您可以调用的命令

git command-name branch1 branch2