Przekazanie pustych zatwierdzeń do pilota

242

Przekazałem jeden zatwierdzenie do zdalnego, ale teraz zdałem sobie sprawę, że komunikat zatwierdzenia jest niepoprawny. Chciałbym zmienić komunikat zatwierdzenia, ale AFAIK nie jest to możliwe. Postanowiłem więc utworzyć puste zatwierdzenie z poprawnym komunikatem:

git commit --allow-empty

Czy są jakieś wady / konsekwencje wypychania pustych zatwierdzeń? Czy jest jakiś problem, z którym mogę się spotkać w przyszłości z powodu tego pustego zatwierdzenia?

mrutyunjay
źródło
1
Sprawdź to podobne pytanie stackoverflow.com/questions/6218199/…
Montaro

Odpowiedzi:

80

Nie spotkasz się z żadną straszną konsekwencją, po prostu historia będzie wyglądać na mylącą.

Państwo mogłoby zmienić popełnić wiadomość wykonując

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

Ale to zastąpi zdalną historię z twoją, co oznacza, że ​​jeśli ktoś w międzyczasie wyciągnie to repozytorium, ta osoba będzie na ciebie bardzo zła ...

Zrób to, jeśli jesteś jedyną osobą uzyskującą dostęp do repozytorium.

Gabriele Petronella
źródło
5
Tak, dlatego wolałem pchanie pustego zatwierdzenia
mrutyunjay,
4
@ mrutyunjay, jeśli istnieje szansa, że ​​inni ludzie ściągną repo, to tak, myślę, że jest to lepsza opcja.
Gabriele Petronella,
1
Nie spotka Cię żadna okropna konsekwencja, po prostu historia będzie wyglądać na mylącą - jaka okropna konsekwencja! ;-)
Alois Mahdal
3
Wolę --force-with-leaseunikać utraty pracy współpracowników.
Kenzo
22

wypychanie zatwierdzeń, puste lub nie, powoduje, że uruchamiane są ewentualne hooki git. To może nic nie zrobić lub mieć wstrząsające konsekwencje.

xor
źródło
9
To jest niedoceniana obserwacja. Tak, puste zatwierdzenia mogą być lepsze od poprawiania zatwierdzeń wypychanych, ale nie można zakładać, że są wolne od skutków ubocznych, jeśli mogą istnieć zaczepy.
wintermute92
18

Czy są jakieś wady / konsekwencje wypychania pustych zatwierdzeń?

Pomijając skrajne zamieszanie, ktoś może się dowiedzieć, dlaczego istnieje kilka zmian, które nie zawierają w sobie treści dotyczących wzorca.

Państwo może zmienić popełnić który pchnął do zdalnego, ale sha1 z commit (Zasadniczo jest to numer ID) zmieni się na stałe, który zmienia drzewa źródłowego - Można by wtedy zrobić git push -fz powrotem do zdalnego.

yamafontes
źródło
15

Dopóki wyraźnie odwołujesz się do drugiego zatwierdzenia z pustego zatwierdzenia, powinno być dobrze. Coś jak:

Commit message errata for [commit sha1]

[new commit message]

Jak zauważyli inni, często lepiej jest wymusić wciśnięcie poprawionego zatwierdzenia.

153957
źródło
12
 $ git commit --allow-empty -m "Trigger Build"
sarjit07
źródło
2
Chociaż ten kod może rozwiązać pytanie, w tym wyjaśnienie, w jaki sposób i dlaczego to rozwiązuje problem, naprawdę pomógłby poprawić jakość twojego postu i prawdopodobnie doprowadziłby do większej liczby głosów. Pamiętaj, że odpowiadasz na pytanie czytelników w przyszłości, a nie tylko osoby zadającej teraz pytanie. Proszę edytować swoje odpowiedzi, aby dodać wyjaśnień i dać wskazówkę co zastosować ograniczenia i założenia. Z recenzji
podwójny sygnał dźwiękowy
-1

A co z tym;

 git commit --allow-empty-message -m ''
David Okwii
źródło
Po prostu usunąłeś wiadomość, a to jeszcze gorzej, jeśli zatwierdzenie będzie puste, powinna być przynajmniej wiadomość dlaczego.
Eric Bishard