2014-04-22 14 views
17

regularnie prowadzonyDlaczego git nazywa mnie "sprytnym", gdy zmieniam nazwę ostatniego komunikatu zatwierdzenia?

git commit --only --amend 

aby przeredagować komunikat commit ostatni popełnić zrobiłem. To zadziała niezależnie od tego, czy mój katalog roboczy jest czysty, czy nie.

Dziś zauważyłem, że gdy robi to, instrukcje domyślne piśmie Wiadomości commit pokazane w moim core.editor zawierać następujący komentarz:

# Clever... amending the last one with dirty index. 

Oprócz konieczności trochę jajka wielkanocne uroku, co czy ta wiadomość ma mi powiedzieć? Czy to ironiczny sposób na powiedzenie, że powinienem być ostrożny, kiedy mieszasz się z poprzednimi zatwierdzeniami (szczególnie, jeśli obecne są zmiany etapowe/niezapisane)? A dlaczego pojawia się, nawet jeśli mój katalog roboczy jest czysty?

+3

@ gwho HAHA ... Wiem, że 'git' jest zdolny do wielu rzeczy, ale DOSTAJE SIĘ DO MOICH SPODÓW, KTÓRYCH NIE JEST! ;) – itsjeyd

+0

To jest GIGANTIC Easter Egg ... i zaraz po Wielkanocy! 'git grep -l" Clever ... zmieniając ostatni z brudnym indeksem "' w klonie [repozytorium Git] (https://github.com/git/git): pojawia się w ['builtin/commit. c'] (https://github.com/git/git/blob/master/builtin/commit.c#L1129) i 'contrib/examples/git-commit.sh', a także to, co wygląda jak pliki tłumaczeń dla innych języków. –

+0

Linia dla ['contrib/examples/git-commit.sh'] (https://github.com/git/git/blob/master/contrib/examples/git-commit.sh#L279). –

Odpowiedz

8

myślę, że może to być oryginalna popełnić wiadomość:

git-commit --amend: two fixes. 

When running "git commit --amend" only to fix the commit log 
message without any content change, we mistakenly showed the 
git-status output that says "nothing to commit" without 
commenting it out. 

If you have already run update-index but you want to amend the 
top commit, "git commit --amend --only" without any paths should 
have worked, because --only means "starting from the base 
commit, update-index these paths only to prepare the index to 
commit, and perform the commit". However, we refused -o without 
paths. 

Signed-off-by: Junio C Hamano <[email protected]> 

Nie jestem zbyt biegły git, ale dla mnie to wygląda jak prawdziwy komplement dla poruszanie się po brudnej indeksu za pomocą --only bez ścieżek

+0

+1 Interesujące. Brak podpowiedzi, które autorzy uważają za niewłaściwy pomysł na przekomunikowanie wiadomości o zatwierdzeniu, gdy indeks jest brudny! :) Nie wyjaśnia, dlaczego ktoś chciałby, aby komunikat pojawił się z czystym katalogiem roboczym ... – itsjeyd

+2

Aby uniknąć dodatkowej logiki, zakładam. Odpowiedni kod wydaje się być skoncentrowany głównie na analizie argumentów, więc widzę, dlaczego nie chciałbyś sprawdzić, czy indeks rzeczywiście był brudny ... – monocell