如何仅列出两个分支之间有变化的文件名?

时间:2016-10-21 09:10:16

标签: git-diff

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

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

类似的东西:

git diff branch1 branch2 | grep /db/migrate

感谢任何帮助

1 个答案:

答案 0 :(得分:7)

此命令会将他们的整个历史记录分开

  

git diff branch1..branch2 --name-only

如果你想比较他们最后的共同祖先那么

  

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

现在你可以grep你想要的文件了。从那里可以很容易地编写一个小的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