Załóżmy, że historia zatwierdzeń git wygląda następująco:
A---B---C---D---E---F master
\ /
X---Y---Z topic
Czy jest możliwe, aby lista gitów zawierała tylko commity na master, AF? Innymi słowy, jeśli zatwierdzenie znajdowało się w dołączonej gałęzi, nie chcę, aby było widoczne.
git
branch
git-branch
git-log
wch
źródło
źródło
D
iZ
była częścią?git log
pozwala wyświetlać tylko te zatwierdzenia z--first-parent
, więc otrzymujesz właściwe rzeczyOdpowiedzi:
git log
ma opcję--first-parent
, więc nie otrzymasztopic
historii.Po połączeniu z
master
,master
commits są pierwszymi rodzicami w scalaniu. Dziennik Git pozwala na wyświetlanie tylko tych zatwierdzeń z opcją --first-parent, więc otrzymujesz właściwe rzeczy.źródło
--first-parent
robi to :) w połączeniu z--no-merges
tobą możesz ukryć zatwierdzenie połączeniaTLDR :
git log origin/master --no-merges
da ci dziennik master i wykluczy wszelkie scalone zatwierdzenia (w tym przypadku x, y, z)Oryginalne punkty
Jest jeszcze jeden ogólny sposób rozwiązania tego
--first-parent
problemu , który nie polega na tym, który będzie pomocny w pewnych sytuacjach .. używanie filtrów wykluczania gałęzigit log origin/topic ^origin/master
To da ci dziennikorigin/topic
zorigin/master
usuniętymi wszystkimi zatwierdzeniami.możesz także dodać, w
--no-merges
którym ukryjesz zatwierdzenia scalania, których możesz lub nie chcesz.Inną przydatną wskazówką jest użycie
shortlog
zamiast tego,log
które daje bardziej skrócone podsumowanie, które może być przydatne w przypadku informacji o wydaniu lub komunikacji o tym, co jest w gałęzi.Aktualizacja
Po ponownym przeczytaniu tego, faktycznie chciałbyś być prawie odwrotnością tego, co opublikowałem; jednak skończyłoby się na wykluczeniu wszystkiego, co jest na master i foo (
git log origin/master ^origin/foo
). Jednak możesz również uzyskać to, o co prosisz (ukryj wszystkie zatwierdzenia, które są częścią scaleń) za pomocągit log origin/master --no-merges
źródło
Odpowiedź Charlesa działa dla mnie.
Ale jeśli używasz dowolnego graficznego interfejsu użytkownika do swoich działań Git, takich jak rozszerzenie Git, SourceTree, Tortoise Git,
Następnie dostępne są bezpośrednie opcje sprawdzenia pierwszego rodzica w twoich narzędziach. Pomyślałem o dodaniu tej odpowiedzi do listy, ponieważ większość ludzi uważa interfejs graficzny za łatwy. W razie potrzeby możesz bezpośrednio wybrać wszystkie zatwierdzenia z tej gałęzi z narzędzia.
Załączam przykład dwóch narzędzi, Byłoby podobnie również dla innych narzędzi: [Zamazałem nazwę użytkownika, nazwę repozytorium git ponieważ jest to repozytorium prywatne, ale nadal możesz dowiedzieć się, jak używać pierwszego rodzica z narzędzi ]
źródło
Czy to nie działa?
źródło