Edycja komunikatu o zatwierdzeniu git w serwisie GitHub

173

Czy istnieje sposób na edycję online komunikatu o zatwierdzeniu GitHub.compo przesłaniu?

Z wiersza poleceń można to zrobić

git commit --amend -m "New commit message"

jak słusznie zasugerowano w innym pytaniu .

Próbowanie, git pulla potem git pushzadziałało (bez ingerencji innego zatwierdzenia w międzyczasie).

Ale czy można to zrobić za pośrednictwem strony GitHubinternetowej?

PNS
źródło
Proszę zobaczyć @ DanGreen-Leipciger za odpowiedź , mimo że nie jest akceptowane w jednym.
RBT

Odpowiedzi:

101

Nie, nie jest to bezpośrednio możliwe. Skrót dla każdego zatwierdzenia Gita jest również obliczany na podstawie komunikatu o zatwierdzeniu. Kiedy zmieniasz komunikat o zatwierdzeniu, zmieniasz skrót zatwierdzenia. Jeśli chcesz wypchnąć to zatwierdzenie, musisz to wymusić (git push -f). Ale jeśli ktoś już wyciągnął twoje stare zatwierdzenie i rozpoczął pracę na podstawie tego zatwierdzenia, musiałby oprzeć swoją pracę na nowym zatwierdzeniu.

dunni
źródło
Mogłem też zrobić git pull, a następnie git push i zadziałało. Ale najwyraźniej nie ma sposobu online.
PNS
Nadal niemożliwe od 5 kwietnia 2016 r.
bigT
I wydaje mi się, że nie będzie to miało wysokiego priorytetu, ponieważ zmieniłbyś historię zmian w już opublikowanej gałęzi, czego nigdy nie powinieneś robić (chyba że jesteś na 200% pewien, że nikt inny nie ma tej gałęzi na swoim lokalnym komputerze).
dunni
To tylko połowa prawdy. To prawda, ale tylko z założeniami. Odpowiedź byłaby lepsza, gdyby została połączona z tą z @DanGreen (poniżej). Nie jest to „bezpośrednio możliwe”, a na pewno wiąże się z ostrzeżeniami (np. „Nigdy nie powinieneś tego robić… [z wyjątkiem sytuacji, gdy jesteś pewien, że chcesz]”) - ale po prostu mówienie tego nie jest możliwa, o ile jest to technicznie możliwe, jest odpowiedzią niepełną.
Bane
1
OP zapytał, czy można to zrobić online na stronie Github. AFAIK to nadal nie jest możliwe. Więc moja odpowiedź jest prawidłowa, a odpowiedź Dana Greena dotyczy tylko sposobu, w jaki można to zrobić lokalnie, a nie na stronie Githubs.
dunni
145

Instrukcje GitHub, jak to zrobić:

  1. W wierszu poleceń przejdź do repozytorium zawierającego zatwierdzenie, które chcesz zmienić.
  2. Wpisz git commit --amendi naciśnij Enter.
  3. W swoim edytorze tekstu edytuj komunikat o zatwierdzeniu i zapisz zatwierdzenie.
  4. Użyj git push --force example-branchpolecenia, aby wymusić wypchnięcie starego zatwierdzenia.

Źródło: https://help.github.com/articles/changing-a-commit-message/

Dan Green-Leipciger
źródło
11
BĄDŹ OSTROŻNY! Różnica między użyciem <git commit --amend> & <Enter> a <git commit --amend -m "new commit message"> polega na tym, że w pierwszym przypadku edytujesz swój komunikat dotyczący zatwierdzenia w edytorze tekstu & w drugim zastępujesz go „nowym komunikatem zmiany”. Jeśli wymusisz wypychanie, zastąpi to zatwierdzenie na pilocie. To NIE rozwiązuje problemu, że jeśli inne osoby w twoim zespole wyciągnęły poprzednie zatwierdzenie, masz teraz różne historie (w tym różne zatwierdzenia) na różnych maszynach. Jeśli wiesz, że nikt nie wykonał twojego zobowiązania, jest to bezpieczne. Przeczytaj źródło opublikowane przez Dana
TMin
7
git commit --amendistniał zawsze. Również jesteś zdezorientowany między git (który jest narzędziem wiersza poleceń typu open source) a Github (który jest firmą zapewniającą hosting źródeł online).
vinyll
1
OP zapytał o GitHub, a konkretnie o to, kiedy zatwierdzenie zostało przesłane na ich serwery. To są instrukcje GitHub dotyczące robienia tego, o co pytał OP.
Dan Green-Leipciger
3
@ DanGreen-Leipciger - tak, ale nie odbywa się to na samej stronie internetowej, odbywa się to za pomocą wiersza poleceń. Myślę, że PNS chciał to zrobić z poziomu interfejsu internetowego.
PhistucK
2
OP zapytał, jak to zrobić konkretnie z GitHubem, jak to zrobić konkretnie z GitHubem.
Dan Green-Leipciger
30

Musisz git push -fzałożyć, że nikt wcześniej nie wyciągnął innego zatwierdzenia. Uważaj, zmieniasz historię.

trzy
źródło
3

Nie, ponieważ komunikat dotyczący zatwierdzenia jest powiązany z SHA / hashem zmiany, a jeśli go zmienimy, zmieniony zostanie również parametr SHA zatwierdzenia. Sposób, w jaki użyłem, to stworzenie komentarza do tego zatwierdzenia. Nie mogę myśleć inaczej.

Prabowo Murti
źródło
2

Dla użytkowników intellij: Jeśli chcesz wprowadzić zmiany w sposób interaktywny dla poprzednich zatwierdzeń, które nie są wypychane, wykonaj poniższe kroki w Intellij :

  • Wybierz opcję Kontrola wersji
  • Wybierz Dziennik
  • Kliknij prawym przyciskiem zatwierdzenie, dla którego chcesz zmienić komentarz
  • Kliknij wymów
  • Gotowe

Mam nadzieję, że to pomoże

Saurabh Valsangkar
źródło
0

Miałem ten sam problem.

Zobacz na swoim githubie konkretną gałąź, a poznasz identyfikator zatwierdzenia pierwszego zatwierdzenia w tej gałęzi. powtórz to:

git rebase -i

edytor otworzy się. Śledź swoje zatwierdzenia z interfejsu github i otwartego edytora oraz zmieniaj wiadomości.

Priya Jain
źródło