2016-10-21 1 views
0

J'ai deux branches dans mon dépôt que je veux diff pour certains fichiers.Comment lister uniquement les noms de fichiers qui ont des changements entre deux branches?

Je veux la liste que vous venez d'ajouter les migrations entre ces deux branches

Quelque chose comme:

git diff branch1 branch2 | grep /db/migrate 

Toute aide est appréciée

+0

Qu'est-ce que vous signifie par "migrations nouvellement ajoutées"? – neuhaus

+3

Copie possible de [Affichage des fichiers ayant changé entre deux révisions] (http://stackoverflow.com/questions/822811/showing-which-files-have-changed-between-two-revisions) –

+0

migrations nouvellement ajoutées entre deux branches un ancien et un nouveau –

Répondre

2

Cette commande diff leur histoire

git diff branch1..branch2 --name seulement

Si vous voulez comparer de leur dernier ancêtre commun puis

git diff Branch1 ... succursale2 --name seule

Et maintenant, vous pouvez grep fichiers que vous souhaitez. De là, il est facile d'écrire un petit script shell qui diffère deux branches fichier par fichier.

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 

Créer un fichier git-nom-commande et le mettre dans l'utilisateur/bin (vous devez paramétrer l'entrée - branches en tant que variables)

Git reconnaîtra comme commande que vous pouvez appeler avec

commande git nom Branch1 succursale2