89 votes

Existe-t-il une option "git pull --dry-run" dans Git ?

Existe-t-il une chose telle que git pull --dry-run pour voir comment les choses seront fusionnées avant que cela ne gâche mon arbre de travail ?

En ce moment, je le fais :

git fetch origin && git merge --no-commit --no-ff

Je n'ai rien vu dans la page de manuel de "git-pull" à ce sujet.

Pour clarifier, j'en ai juste besoin dans un script Ant pour le déploiement pour voir s'il y a des conflits en faisant git pull puis revenir en arrière, sortir de la construction, échouer le déploiement et laisser l'arborescence du répertoire telle qu'elle était auparavant. git pull .

4voto

kostix Points 11762

Puisque tirer implique de fusionner, j'opterais pour courir. git merge --abort si votre script détecte qu'il y avait des conflits et que la fusion a échoué.

1voto

Andy P Points 147

Voir ma réponse dans cette question similaire :

Comment prévisualiser git-pull sans faire de fetch ?

ceci est destiné à la ~/.gitconfig fichier :

[alias]
        diffpull=!git fetch && git diff HEAD..@{u}

1voto

rob_7cc Points 551

OliverE a raison : git pull a un dry-run Je recommande donc git pull --dry-run -v pour atteindre l'objectif de l'OP - simple et direct. pull n'avait pas toujours une option de marche à vide mais dans les versions précédentes (et actuelles) de git, fetch disposait (et dispose toujours) d'une option de marche à vide. Ainsi, une approche alternative consiste à faire un git fetch --dry-run -v avant de faire votre tirage. Il est toujours préférable de vérifier une action avant de l'exécuter, plutôt que de devoir passer du temps à revenir en arrière.

0voto

Zibri Points 2623

Sans tirer :

[ "$(git fetch;git diff | wc -l)" != "0" ] && (
echo there are updates
echo do your stuff here
)

ou sans rien toucher :

[ "$(git pull --dry-run | wc -l)" != "0" ] && (
echo there are updates
echo do your stuff here
)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X