Existe uma maneira de determinar quando um ramo Git foi criado? Eu tenho um ramo no meu repositório e não me lembro de criá-lo e pensei que talvez ver o timestamp da criação despertasse minha memória.
git
branch
git-branch
paxos1977
fonte
fonte
Respostas:
Usar
Se você preferir vê-lo em contexto usando o gitk, use
(onde foo é o nome do ramo que você está procurando.)
fonte
Conforme indicado nos comentários e na resposta do Jackub , desde que sua ramificação seja menor que o número de dias definido na configuração
gc.reflogexpire
(o padrão é 90 dias), você poderá utilizar seu reflog para descobrir quando uma referência de ramificação foi criado pela primeira vez.Observe que
git reflog
pode receber a maioria dosgit log
sinalizadores. Observe também que osHEAD@{0}
seletores de estilo são efetivamente noções de tempo e, de fato, são tratados (de uma maneira hackeada) como seqüências de datas. Isso significa que você pode usar o sinalizador--date=local
e obter uma saída como esta:Às vezes, também pode ser útil usar
--date=relative
:Uma última observação: o
--all
sinalizador (que é realmente um sinalizador de git-log entendido por git-reflog) mostrará os refletores de todos os representantes conhecidos emrefs/
( em vez de simplesmenteHEAD
) que mostrarão claramente os eventos de ramificação:fonte
gc.reflogexpire
dias.Pro Git § 3.1 Ramificação Git - O que é uma ramificação tem uma boa explicação sobre o que realmente é uma ramificação git
Como um ramo é apenas um ponteiro leve, o git não tem noção explícita de seu histórico ou data de criação. "Mas espere", eu ouvi você dizer, "é claro que o git conhece minha história no ramo!" Bem, mais ou menos.
Se você executar um dos seguintes:
você verá o que se parece com o "histórico de sua ramificação", mas é realmente uma lista de confirmações alcançáveis a partir de 'ramificação' que não são alcançáveis pelo mestre. Isso fornece as informações que você deseja, mas se e somente se você nunca mesclou 'ramificação' de volta ao mestre e nunca mesclou o mestre em 'ramificação' desde que você a criou. Se vocês se fundiu, esse histórico de diferenças entrará em colapso.
Felizmente, o reflog geralmente contém as informações que você deseja, conforme explicado em várias outras respostas aqui. Usa isto:
para mostrar o histórico do ramo. A última entrada nesta lista é (provavelmente) o ponto em que você criou a ramificação.
Se a ramificação foi excluída, 'ramificação' não é mais um identificador válido do git, mas você pode usá-lo, o que pode encontrar o que você deseja:
Ou em um shell cmd do Windows:
Observe que o reflog não funcionará efetivamente em ramificações remotas, apenas nas que você trabalhou localmente.
fonte
gc.reflogexpire
dias, conforme indicado nesta resposta e nesta resposta .git reflog --date=local <branch>
Primeiro, se sua ramificação foi criada dentro de
gc.reflogexpire
dias (padrão 90 dias, ou seja, cerca de 3 meses), você pode usargit log -g <branch>
ougit reflog show <branch>
para encontrar a primeira entrada no reflog, que seria um evento de criação, e se parece com abaixo (paragit log -g
):Você saberia quem criou um ramo, quantas operações atrás e de qual ramo (bem, pode ser apenas "Criado a partir do HEAD", o que não ajuda muito).
Foi o que MikeSep disse em sua resposta .
Segundo, se você tem ramificação por mais tempo
gc.reflogexpire
e executougit gc
(ou foi executada automaticamente), teria que encontrar um ancestral comum com a ramificação da qual foi criada. Dê uma olhada no arquivo de configuração, talvez exista umabranch.<branchname>.merge
entrada, que diria em que ramo este se baseia.Se você souber que a ramificação em questão foi criada fora da ramificação principal (bifurcação da ramificação principal), por exemplo, você pode usar o seguinte comando para ver o ancestral comum:
Você também pode tentar
git show-branch <branch> master
, como alternativa.Foi o que gbacon disse em sua resposta .
fonte
Ainda não tenho certeza do comando git, mas acho que você pode encontrá-los nos reflogs.
Meus arquivos parecem ter um carimbo de data / hora unix.
Atualização: parece haver uma opção para usar o histórico de reflog em vez do histórico de confirmação ao imprimir os logs:
Você também pode seguir esse log, quando criou a ramificação.
git log
está mostrando a data da confirmação, no entanto, não a data em que você fez a ação que fez uma entrada no reflog. Ainda não encontrei isso, exceto olhando o reflog real no caminho acima.fonte
Tente isto
fonte
%
antes(refname)
| cut -c 5- | sort -r |
e depois passei pelo grep do mês, dando-me uma lista de ordem cronológica inversa, mais ou menos.--sort='-committerdate'
(observe a '-' antes da data de envio para ordem cronológica inversa).Usar:
para mostrar todo o ciclo de vida do seu repositório na pasta atual. O nome do ramo que aparece pela primeira vez (de baixo para cima) é a fonte que foi criada.
Isso significa:
O desenvolvimento da filial é criado (checkout -b) a partir do mestre
O recurso de ramificação-jira35 é criado (check-b) a partir do desenvolvimento
A ramificação feature-jira-sut-46 é criada (checkout -b) a partir do desenvolvimento
fonte
Isso é algo que eu criei antes de encontrar esse tópico.
fonte
Este comando mostra a data da ramificação criada a
dev
partir demain
fonte
Se você deseja obter os detalhes de todas as filiais
fonte
Encontrei o melhor caminho: sempre verifico o último ramo criado dessa maneira
fonte
Combinado com a resposta de Andrew Sohn ( https://stackoverflow.com/a/14265207/1929406 )
fonte
Isso fez por mim: (10 anos depois)
Como não há informações armazenadas nos horários de criação da filial, o que isso faz é exibir o primeiro commit de cada branch (
--no-walk
), que inclui a data do commit. Usar--remotes
para as ramificações remotas ou omita-as nas ramificações locais.Como faço pelo menos um commit em uma ramificação antes de criar outra, isso me permitiu rastrear alguns meses de criações de ramificações (e o recurso dev-start) para fins de documentação.
fonte: AnoE na stackexchange
fonte
sintaxe:
git reflog --date=local | grep checkout: | grep ${current_branch} | tail -1
exemplo:
git reflog --date=local | grep checkout: | grep dev-2.19.0 | tail -1
resultado:
cc7a3a8ec HEAD@{Wed Apr 29 14:58:50 2020}: checkout: moving from dev-2.18.0 to dev-2.19.0
fonte