0

J'utilise des branches comme sauvegarde de mon WIP. Mais revenons-y, je veux avoir mon retour git diff, donc je peux avoir encore une vue d'ensemble sur les changements tout en continuant mon travail.L'historique de réécriture d'une branche de développeur unique peut-il être dangereux?

Donc, je réinitialise généralement mon WIP-commit (git reset HEAD^) et recommencez à travailler. Mais quand j'ai besoin de commettre à nouveau (un commit définitif ou un WIP-commit) et le pousser à l'origine à distance Je me demande si ce nouveau commit divergent pourrait créer des problèmes aux collaborateurs tirant la même branche.

Je sais qu'ils le feront s'ils vont faire des changements et s'engager. Mais que se passe-t-il s'ils tirent simplement la branche mais qu'ils ne la touchent jamais, et par conséquent ils tirent le deuxième nouveau WIP-commit divergent?

Est-il assez sûr de simplement accepter de ne pas toucher les branches des collaborateurs?

Répondre

0

Si votre dernière validation n'a pas été poussée, alors git reset HEAD^ ne gâchera rien. Mais si vous avez poussé, je recommanderais contre, même si d'autres collaborateurs ne modifient pas cette branche. Disons que vous faites un commit initial A et le pousser, puis git reset HEAD^ et faites le commit B. Lorsque vous essayez de le pousser, vous obtiendrez une erreur car votre B a le même parent que A, et ainsi git ne peut pas effectuer de fusion rapide sur le serveur. Le message d'erreur recommandera que vous faites un git pull dans ce cas. Mais une fois que vous le faites, vous aurez un nouveau commit de fusion qui fusionne A et B.

Maintenant, vous pouvez contourner ce problème en faisant un push de force (soufflant ainsi A), mais cela ne fonctionnera que si personne n'a retiré le repo depuis que vous avez appuyé sur A. Sinon, la prochaine fois qu'ils tireront, ils fusionneront A et B sur leur machine locale et repousseront cette fusion vers le serveur.

Voilà une histoire courte: ne réécrivez jamais l'histoire qui a été poussée.

+0

Bonne explication. Merci. Avez-vous une suggestion pour un workflow d'avoir une sauvegarde à distance de WIP mais sans rendre l'historique trop sale avec des commits de milieu de gamme? – Kamafeather