Git pull journal des modifications
Après en tirant à partir d'un serveur git, je vais essayer d'obtenir une liste de tous les fichiers modifiés. Je n'ai pas besoin spécifique des parties de code, juste une liste de fichiers (avec une sorte d'indication pour déterminer si elle a été ajoutée, supprimée ou modifiée).
J'ai d'abord regardé l'aide de la commande git log, mais que appearantly renvoie uniquement les informations à partir du dernier commit:
git log --name-status --max-count=1 --pretty=format:""
Depuis cette appearantly obtient uniquement les modifications depuis le dernier commit dans un pull, j'essaie de trouver un moyen d'obtenir toutes les modifications (le pull existe presque toujours de plusieurs commits).
Est-il une commande pour cela? (Je suis en interaction avec Git à partir de PHP, btw)
OriginalL'auteur Gilles Maes | 2011-06-30
Vous devez vous connecter pour publier un commentaire.
Après un pull,
ORIG_HEAD
se réfère à l'endroit où vous étiez avant, etHEAD
se réfère à l'endroit où vous êtes maintenant. DoncORIG_HEAD..
signifie que les changements tiré dans la branche courante.--max-count=1
, c'est tout simplement le dernier commit, pas ce que vous voulez, comme vous l'avez découvert.Vous voulez probablement quelque chose comme
git diff --name-status ORIG_HEAD..
qui va sortir un caractère unique code d'état, et un nom de fichier pour chaque fichier modifié, l'agrégation de tous les commits ensemble. Si vous le souhaitez, ventilés par le changement, vous avez besoin de quelque chose commegit log --oneline --name-status ORIG_HEAD..
git diff --name-status ORIG_HEAD..
a travaillé comme un charme, ne peut pas dire assez vous remercier!alias gpull='git pull; git diff --name-status ORIG_HEAD..'
Juste ce que je voulais, a ajouté ça à mes .bashrcCela ne fonctionne pas comme souhaité si vous avez votre suivi à distance de la branche de suivi d'une autre branche. Par exemple, si j'ai ma branche
topic
suiviorigin/master
. Pull rebasetopic
surorigin/master
. Pour voir le delta introduite uniquement sur l'amont de la branche, vous pouvez exécutergit lg @{1}..@{u}
.@{1}
utilise reflogs et est le même queORIG_HEAD
.@{u}
est votre en amont de la branche (suivi à distance de la branche)OriginalL'auteur araqnid
Une autre commande est:
OriginalL'auteur mshiltonj