Mam oddział lokalny śledzący oddział zdalny / główny. Po uruchomieniu git-pull
i git-log
, dziennik wyświetli wszystkie zatwierdzenia w zdalnej gałęzi śledzenia, a także w bieżącej gałęzi. Ponieważ jednak wprowadzono tak wiele zmian w oddziale zdalnym, muszę zobaczyć tylko zatwierdzenia dokonane w bieżącym oddziale lokalnym.
Jakiego polecenia Git użyłby do wyświetlania zatwierdzeń tylko dla określonej gałęzi?
Uwagi:
Informacje o konfiguracji:
[branch "my-branch"]
remote = origin
merge = refs/heads/master
źródło
git log --no-merges master..
było dokładnie tym, czego potrzebowałem.--no-merges
może się wydawać, że pokazuje tylko zatwierdzenia z określonej gałęzi, ale tak naprawdę pokazuje tylko zatwierdzenia, które nie spowodowały scaleniagit log --no-merges --pretty='%C(yellow)%h%d %Creset%an %Cgreen%ar:%Creset %s' --graph master..
Posługiwać się:
Dotyczy tylko gałęzi docelowej (oczywiście --graph, --abbrev-commit --decorate są bardziej dopracowane).
Kluczową opcją jest --first-parent: „Śledź tylko pierwszy zatwierdzenie nadrzędne po zobaczeniu zatwierdzenia scalania” ( https://git-scm.com/docs/git-log )
Zapobiega wyświetlaniu wideł zatwierdzania.
źródło
--first-parent <branch_name>
jest opcją. Pracuje !--first-parent <branch_name>
też dla mnie pracował! Skończyłem z aliasem dogit log --first-parent $current_branch_name --no-merges
. W odpowiedzi na @EdRandall pokaże zatwierdzenia na gałęzi + te, z których był rozgałęziony. Na przykład:new_feature
od mistrza. Dodajesz do niego zatwierdzenia C i D. Następnie dodajesz E i F do master. Następnie scalasz master znew_feature
. Używającgit log
dalejnew_feature
, zobaczysz „merge master”, F, E, D, C, A, B.Używającgit log --first-parent new_feature --no-merges
, zobaczysz D, C, A, B.Jeśli chcesz tylko tych zatwierdzeń, które są wykonywane przez ciebie w konkretnej gałęzi, użyj poniższego polecenia.
źródło
Problem, który miałem, który wydaje mi się podobny do tego, jest taki, że mistrz był zbyt daleko przed moim punktem rozgałęzienia, aby historia była przydatna. (Nawigacja do punktu rozgałęzienia trwałaby zbyt długo).
Po kilku próbach i błędach dało mi to mniej więcej to, czego chciałem:
źródło
po prostu biegnij
git log origin/$BRANCH_NAME
źródło