Biorąc pod uwagę zatwierdzenie scalenia, jak mogę uzyskać jego rodziców? Niektóre polecenia git przyjmują rodzica jako wersję; inne (takie jak git revert
), jako numer nadrzędny. Chciałbym wiedzieć, jak zdobyć rodziców w obu przypadkach. Nie chcę używać graficznego polecenia dziennika, ponieważ często wymaga przewijania w dół długiego drzewa, aby znaleźć drugiego rodzica.Otrzymuj rodziców zatwierdzenia scalenia w git
Odpowiedz
Należy również pamiętać, że normalne wyjście dziennika przedstawia skrócone mieszań z rodziców, nie ma potrzeby, aby przejść:
commit 395f65d438b13fb1fded88a330dc06c3b0951046
Merge: 9901923 d28790d
...
git zawsze drukuje je w kolejności liczby dominującej: pierwszy hash jest dla pierwszego rodzica, i tak dalej.
Jeśli chcesz tylko mieszań, dwie równoważne możliwości:
git log --pretty=%P -n 1 <commit>
git show --pretty=%P <commit>
rev-list
może również pokazać rodzic mieszań dla commit. Najpierw wylistuje hash dla zatwierdzenia, a następnie przez rodziców.
git rev-list --parents -n 1 <commit>
Jeśli chcesz zbadać rodziców, można zwrócić się do nich bezpośrednio z karatów jako <commit>^1
i <commit>^2
, np .:
git show <commit>^1
ten sposób uogólnienia; w przypadku scalania ośmiornicy można odwołać się do rodzica jako jako . Możesz odwołać się do wszystkich rodziców z <commit>^@
, ale to nie działa, gdy wymagany jest pojedynczy commit. Dodatkowe sufiksy mogą pojawiać się po składni macierzystej (np. <commit>^2^
, <commit>^2^@
), podczas gdy nie mogą one po ^@
(<commit>^@^
być nieprawidłowe). Więcej informacji na temat tej składni można znaleźć na stronie podręcznika: rev-parse
.
Należy również pamiętać, że normalne wyjście dziennika wykazuje skróconych mieszań z rodziców:
commit 395f65d438b13fb1fded88a330dc06c3b0951046
Merge: 9901923 d28790d
...
- 1. Drukuj komunikat zatwierdzenia danego zatwierdzenia w git
- 2. Gitlab api, aby uzyskać zatwierdzenia w żądaniu scalenia
- 3. Jak edytować wiadomość zatwierdzenia git merge
- 4. Usuń puste zatwierdzenia w git
- 5. Dzielenie pierwszego zatwierdzenia w git
- 6. Git: pobranie określonego zatwierdzenia
- 7. Git usuń historię zatwierdzenia
- 8. Jak oszukać git-svn, aby rozpoznać scalenia wykonane z svn?
- 9. Zmiana komunikatu zatwierdzenia Git przed scaleniem
- 10. Jaki jest najlepszy sposób na wymuszenie scalenia w git?
- 11. Otrzymuj statyczne komunikaty analizatora kodu tylko z "git diff"?
- 12. Git - Co to jest identyfikator zatwierdzenia git?
- 13. git log - obserwuj, pokaż wszystkie zatwierdzenia łącznie z połączeniami
- 14. zmiana komentarza git zatwierdzenia pushed
- 15. Odnosząc się do poprzedniego/następnego zatwierdzenia w git?
- 16. git wróć do pewnego zatwierdzenia
- 17. Pchanie bez zatwierdzenia w Mercurial lub Git
- 18. Numer wydania Jira w komunikacie zatwierdzenia git
- 19. pobierz wiadomość zatwierdzenia w git hook
- 20. Dlaczego data zatwierdzenia w git jest nieaktualna?
- 21. Połącz lokalne zatwierdzenia Git w jedno zatwierdzenie dla git-svn
- 22. Znajdź zatwierdzenie scalenia, które zmodyfikowało daną linię?
- 23. Jak mogę znaleźć wszystkie scalenia, które miały konflikty w repozytorium Git?
- 24. Pokaż różnicę konfliktu częścią scalenia
- 25. Dlaczego git monituje mnie o komunikat zatwierdzenia połączenia?
- 26. Przywracanie zatwierdzenia scalania git, a następnie cofanie przywracania
- 27. Dlaczego git tworzy scalane zatwierdzenia? A jak je usunąć?
- 28. Git odmawia scalenia niepowiązanych historii. Czym są "niezwiązane historie"?
- 29. Uzyskaj wszystkie zatwierdzenia git od ostatniego tagu
- 30. Zmiana pierwszego zatwierdzenia projektu za pomocą Git?
sekretarki moje własne pytanie: wyniki "git rev-list - parents -n 1" są: . Tzn. Rodzice są policzeni. –
mikemaccana
Możesz również użyć git-parent https://github.com/danielribeiro/dotfiles/blob/master/bin/git-parents. Po prostu umieść go w swojej PATH i zadzwoń do gitów rodziców ( domyślnie HEAD) –
@jefromi, naprawdę chcę, aby "Zauważ, że normalne logowanie pokazuje ..." część, która znajduje się na górze twojej odpowiedzi. :) –