如何仅列出两个分支之间已更改的文件名
How to list only file names that have changed between two branches
我的存储库中有两个分支,我想对某些文件进行比较。
我只想列出这两个分支之间新添加的迁移。
类似于:
git diff branch1 branch2 | grep /db/migrate
我该怎么做?
此命令将比较它们的整个历史记录:
git diff branch1..branch2 --name-only
如果你想从他们最后的共同祖先开始比较,那么:
git diff branch1...branch2 --name-only
现在您可以搜索所需的文件。从那里可以很容易地编写一个 shell 脚本来区分两个分支,逐个文件。
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-command-name
文件并将其放入 user/bin
文件夹(您应该参数化输入 - 分支作为变量)。
Git 会将其识别为您可以调用的命令:
git command-name branch1 branch2
我的存储库中有两个分支,我想对某些文件进行比较。
我只想列出这两个分支之间新添加的迁移。
类似于:
git diff branch1 branch2 | grep /db/migrate
我该怎么做?
此命令将比较它们的整个历史记录:
git diff branch1..branch2 --name-only
如果你想从他们最后的共同祖先开始比较,那么:
git diff branch1...branch2 --name-only
现在您可以搜索所需的文件。从那里可以很容易地编写一个 shell 脚本来区分两个分支,逐个文件。
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-command-name
文件并将其放入 user/bin
文件夹(您应该参数化输入 - 分支作为变量)。
Git 会将其识别为您可以调用的命令:
git command-name branch1 branch2