web-dev-qa-db-fra.com

Pousser les commits vides à distance

J'ai poussé un commit à distance mais maintenant je me suis rendu compte que le message de commit n'est pas correct. Je voudrais changer le message de validation, mais autant que je sache, ce n'est pas possible. J'ai donc décidé de créer un commit vide avec le message correct:

git commit --allow-empty

Y a-t-il des inconvénients/conséquences à pousser des vides vides? Y a-t-il un problème que je pourrais rencontrer à l'avenir à cause de ce commit vide?

202
mrutyunjay

Vous ne ferez face à aucune conséquence terrible, mais l'histoire vous semblera un peu déroutante.

Vous pouvez changer le message de validation en le faisant

git commit --amend
git Push --force-with-lease # (as opposed to --force, it doesn't overwrite others' work)

MAIS Cela remplacera l’historique distant avec le vôtre, ce qui signifie que si quelqu'un retient ce dépôt dans l’intervalle, il sera très en colère contre vous ...

Faites-le si vous êtes la seule personne à accéder au référentiel.

70

pousser les commits, qu'ils soient vides ou non, provoque le déclenchement d'éventuels hooks. Cela peut ne rien faire ou avoir des conséquences bouleversantes.

18
xor

Y a-t-il des inconvénients/conséquences à pousser des vides vides?

Mis à part l'extrême confusion, il est possible que quelqu'un comprenne pourquoi il y a une série de commits sans contenu dans master, pas vraiment.

Toi pouvez changez le commit que vous avez poussé vers remote, mais le sha1 du commit (en fait, c'est son numéro d'identification) changera de façon permanente, ce qui modifiera l'arbre source - Vous devrez alors faire un git Push -f de nouveau à remote.

17
yamafontes

Tant que vous faites clairement référence à l'autre commit à partir du commit vide, tout ira bien. Quelque chose comme:

Commit message errata for [commit sha1]

[new commit message]

Comme d'autres l'ont souligné, il est souvent préférable de forcer un commit corrigé.

14
153957