154 votes

Quand dois-je faire "git pull", avant ou après "git add, git commit" ?

Quel est le bon chemin à suivre ?

git add foo.js
git commit foo.js -m "commit"
git pull
git push

Ou

git pull
git add foo.js
git commit foo.js -m "commit"
git push

Ou

git add foo.js
git pull
git commit foo.js -m "commit"
git push

UPD :

J'ai oublié de mentionner que dans ce cas, j'utilise git add pour mettre en scène un traqué y modifié fichier. Pas pour inclure un tout nouveau fichier dans le référentiel. Cela change-t-il l'ordre des commandes ?

184voto

johnjo Points 1185

Je pense que la meilleure façon de faire est :

Stockez vos modifications locales :

git stash

Mettre à jour la branche avec le dernier code

git pull

Fusionnez vos modifications locales dans le dernier code :

git stash apply

Ajouter, valider et pousser vos modifications

git add
git commit
git push

D'après mon expérience, c'est le chemin de moindre résistance avec Git (en ligne de commande en tout cas).

91voto

Arnaud Denoyelle Points 7276

Pull = fetch + merge.

Vous devez valider ce que vous avez fait avant de fusionner.

Donc, tirez après l'engagement.

62voto

Jasarien Points 35353

Je suggère de tirer de la branche distante aussi souvent que possible afin de minimiser les fusions importantes et les conflits possibles.

Cela dit, j'opterais pour la première option :

git add foo.js
git commit foo.js -m "commit"
git pull
git push

Validez vos modifications avant de procéder au tirage afin que vos modifications soient fusionnées avec les modifications distantes lors du tirage. Il peut en résulter des conflits que vous pouvez commencer à gérer en sachant que votre code est déjà validé si quelque chose ne va pas et que vous devez interrompre la fusion pour une raison quelconque.

Je suis sûr que quelqu'un ne sera pas d'accord avec moi, je ne pense pas qu'il y ait de correct de faire ce flux de fusion, seulement ce qui fonctionne le mieux pour les gens.

12voto

Je pense git pull --rebase est la manière la plus propre de placer vos commits récents locaux au-dessus des commits distants que vous n'avez pas à un moment donné.

Ainsi, vous n'avez pas besoin de tirer à chaque fois que vous voulez commencer à faire des changements.

2voto

AlexE Points 326

Vous voulez que votre changement se situe au-dessus de l'état actuel de la branche distante. Donc vous voulez probablement tirer juste avant de commiter vous-même. Après cela, poussez à nouveau vos modifications.

Les fichiers locaux "sales" ne sont pas un problème tant qu'il n'y a pas de conflits avec la branche distante. S'il y a des conflits, la fusion échouera, il n'y a donc aucun risque ou danger à extraire avant de valider les changements locaux.

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