Suponha que seu histórico de git commit seja assim:
A---B---C---D---E---F master
\ /
X---Y---Z topic
É possível ter git list apenas os commits no master, AF? Em outras palavras, se o commit estava em um branch mesclado, eu não quero que seja mostrado.
git
branch
git-branch
git-log
wch
fonte
fonte
D
eZ
era parte do branch mesclado?git log
permite exibir apenas os commits com--first-parent
, para que você obtenha as coisas certasRespostas:
git log
tem opção--first-parent
, então você não terátopic
histórico.Quando mesclados
master
, osmaster
commits são os primeiros pais a serem mesclados. O log do Git permite exibir apenas os commits com --first-parent, para que você obtenha as coisas certas.fonte
--first-parent
faz :) combinado com--no-merges
você pode ocultar os commits de mesclagemTLDR :
git log origin/master --no-merges
dará a você um log de mestre e excluirá quaisquer confirmações mescladas (neste caso x, y, z)Pontos Originais
Há outra maneira geral de fazer isso que não depende de
--first-parent
qual será útil em certas situações .. usando os filtros de exclusão de ramificaçãogit log origin/topic ^origin/master
Isso lhe dará um log deorigin/topic
com todosorigin/master
os commits removidos.você também pode adicionar
--no-merges
que irá ocultar os commits de mesclagem que você pode ou não desejar.Outra dica útil é usar em
shortlog
vez delog
que lhe dará mais um resumo abreviado que pode ser útil para notas de lançamento ou comunicação do que está em um branch.Atualizar
Depois de reler isto, você realmente desejaria quase o inverso do que eu postei; no entanto, isso acabaria excluindo tudo o que está em master e foo (
git log origin/master ^origin/foo
). No entanto, você também pode obter o que deseja (ocultar todos os commits que fazem parte dos merges) comgit log origin/master --no-merges
fonte
A resposta de Charles funciona para mim.
Mas se você estiver usando qualquer interface de usuário gráfica para suas atividades Git como Git Extension, SourceTree, Tortoise Git
Depois, há opções diretas para verificar o primeiro pai em suas ferramentas. Pensei em adicionar esta resposta à lista, pois a maioria das pessoas acha a Interface Gráfica fácil. e você pode escolher diretamente todos os commits daquele branch em particular da ferramenta, se necessário.
Anexei o exemplo de duas ferramentas, seria semelhante para outras ferramentas também: [Eu blured o nome de usuário, nome do repo git, pois este é um repositório privado, mas ainda assim você pode ter uma ideia de como usar o primeiro pai a partir de ferramentas ]
fonte
Isso não funciona?
fonte