Jak mogę utworzyć nową commit
i utworzyć nową wiadomość, jeśli nie wprowadzono żadnych zmian w plikach?
Czy nie jest to możliwe, ponieważ kod zatwierdzenia (SHA?) Będzie taki sam?
Odpowiedzi:
Rzadko istnieje dobry powód, aby to zrobić, ale parametr jest --allow-empty
przeznaczony dla pustych zatwierdzeń (bez zmiany plików), w przeciwieństwie do --allow-empty-message
pustych komunikatów o zatwierdzeniach. Możesz również przeczytać więcej, pisząc git help commit
lub odwiedzając dokumentację online .
Podczas gdy obiekt drzewa (który ma własny hash) będzie identyczny, zatwierdzenie faktycznie będzie miało inny hash, ponieważ przypuszczalnie będzie miało inny znacznik czasu i komunikat, i na pewno będzie miało inne zatwierdzenie nadrzędne. Wszystkie te trzy czynniki są zintegrowane z git
algorytmem wyznaczania wartości skrótu obiektu.
Jest to kilka powodów, dla których warto pustym popełnić (zawierające niektóre komentarze):
git
poleceń bez generowania arbitralnych zmian (przez Vaelusa ).gitolite
(przez Tatsh ).Inne strategie dodawania metadanych do drzewa zatwierdzenia obejmują:
git notes
skojarzyć zmienną notatkę z istniejącym niezmiennym zatwierdzeniem.commit --amend
jeśli pilot nie pozwala na wciskanie wymuszone. W ten sposób możesz pozwolić programistom zobaczyć ważną wiadomość, która jest powiązana z poprzednim zatwierdzeniem.
Puste zatwierdzenie z komunikatem
git commit --allow-empty -m "Empty test commit"
Pusty zatwierdzenie z pustą wiadomością
git commit --allow-empty --allow-empty-message
Jeśli używasz systemu takiego jak gitversion Wykonywanie tego rodzaju zatwierdzeń ma sens. Możesz mieć zatwierdzenie, które jest przeznaczone specjalnie do uderzania w wersję główną za pomocą komentarza + semver: major.
Może jako rozsądniejszą alternatywę możesz utworzyć tag z adnotacjami (nazwane zatwierdzenie z komunikatem). Zobacz git tag -a
opcję.
dev
gałąź,master
a następniefeat
gałąź bezpośrednio z gałęzidev
,feat
gałąź wygląda na pochodzącą zmaster
gałęzi, ponieważ nie ma żadnego wyróżniającego zatwierdzenia nadev
gałęzi, z którejfeat
pochodzi gałąź. Puste zatwierdzenie, gdy po raz pierwszy tworzyszdev
gałąź, pomaga ustalićdev
gałąź jako własną gałąź na czas nieokreślony, niezależną odmaster
. Ogólnie jest to pomocne, gdy używasz gałęzi jako warstw i tworzysz dwie warstwy z jednego zatwierdzenia