Como encontro a data do primeiro commit em um repositório GitHub?


46

Dado um repositório GitHub, como posso encontrar rapidamente a data de seu primeiro commit?

Muitas vezes, quero saber quantos anos o projeto tem, mas não consigo encontrar uma maneira rápida de chegar ao início dos históricos de consolidação de projetos com históricos de consolidação muito longos.


1
Tópico no SO pode ser útil Como mostrar primeira comprometer por 'git log' olha como git log --reverseirá mostrar commits de primeiras a mais recente
batpigandme

Respostas:


46

Clique na guia "Insights" do repositório que você deseja ver a confirmação mais antiga, seguida pela subguia "Rede" na barra de menus esquerda. Quando a página estiver totalmente carregada (ou seja, você pode ver muitas linhas se unindo e todas), pressione Shift+ para ir até o primeiro commit. Clique no ponto que representa o primeiro commit e você pode obtê-lo.

Nota: Isso funciona apenas para repositórios que foram criados no GitHub originalmente, não para repositórios que foram importados de outro local (ou seja, confirmações não registradas pelo próprio GitHub). Além disso, esse método pode não funcionar necessariamente se o repositório tiver muitos garfos.

Como alternativa, você pode clonar o repositório na sua máquina local e executar o seguinte comando:

git log --reverse

As confirmações do repositório serão mostradas na ordem inversa (confirmação mais antiga primeiro).


4
Não funciona se o repositório tiver muitos garfos.
Mike McKay

3
"Network" é encontrado sob a aba lateral "Graphs" (apenas no caso)
Jedidja

Não funciona se o ramo padrão não tiver a confirmação mais antiga.
Stop Harming Monica

Há uma pergunta semelhante no Stack Overflow. Você se importaria de publicar esta resposta?
Stevoisiak 16/03/19

-1não funciona --reversepara obter a confirmação mais antiga porque o limite ocorre antes do filtro.
Quolonel Questions

14

Se você clonou o repositório, use os comandos git como de costume:

// cd to repo
$ git log --reverse

mostrará o histórico de confirmações na ordem inversa. RI MUITO.-


13

A resposta da Hydra pode não funcionar com projetos que possuem muitos garfos: " Não foi possível carregar o gráfico da rede. Muitos garfos para exibição " .

Você pode verificar a guia "Colaboradores" em "Gráficos"

Guia "Colaboradores" em "Gráficos"


Se você selecionar a borda esquerda do gráfico usando o pincel, clique no # commit para o primeiro commit, você realmente verá os commits.
Gordon

@Gordon que não é muito útil, isso só mostra todas as submissões para essa pessoa
Steven Penny

@StevenPenny, a questão era exatamente como obter a data do primeiro commit. Concedido, é confuso, mas se você selecionar apenas a borda esquerda, verá o primeiro commit. Prefiro o site dedicado vinculado na minha resposta abaixo .
Gordon

Não funciona se o ramo padrão não tiver a confirmação mais antiga.
Stop Harming Monica

Este é o melhor
Code Whisperer

1

Você receberá a última página:

#!/bin/sh
url=https://github.com/$1/$2/commits?page=
up=1
while :
do
  printf '%s%d\t' $url $up
  if wget -q --spider $url$up
  then
    echo OK
    lw=$up
    up=$((up * 2))
  else
    echo Not Found
    break
  fi
done
while :
do
  k=$(((lw + up) / 2))
  if [ $k = $lw ]
  then
    break
  fi
  printf '%s%d\t' $url $k
  if wget -q --spider $url$k
  then
    echo OK
    lw=$k
  else
    echo Not Found
    up=$k
  fi
done

Exemplo:

$ github.sh jp9000 OBS
https://github.com/jp9000/OBS/commits?page=1    OK
https://github.com/jp9000/OBS/commits?page=2    OK
https://github.com/jp9000/OBS/commits?page=4    OK
https://github.com/jp9000/OBS/commits?page=8    OK
https://github.com/jp9000/OBS/commits?page=16   OK
https://github.com/jp9000/OBS/commits?page=32   OK
https://github.com/jp9000/OBS/commits?page=64   OK
https://github.com/jp9000/OBS/commits?page=128  Not Found
https://github.com/jp9000/OBS/commits?page=96   Not Found
https://github.com/jp9000/OBS/commits?page=80   Not Found
https://github.com/jp9000/OBS/commits?page=72   OK
https://github.com/jp9000/OBS/commits?page=76   OK
https://github.com/jp9000/OBS/commits?page=78   OK
https://github.com/jp9000/OBS/commits?page=79   OK

Fonte


1

Aqui está um site que pesquisa apenas o primeiro commit no GitHub, evitando problemas com históricos de commit longos e muitos garfos:

http://first-commit.com/

Discussão sobre Hacker News .

... O que observa que isso está apenas raspando o site e calculando para qual página ir. Seria muito melhor usar a API.


1
Não funciona se o ramo padrão não tiver a confirmação mais antiga.
Stop Harming Monica

0

Você pode usar a ferramenta unix sed para filtrar apenas a data da primeira confirmação usando

git log --reverse | sed -n -e "3,3p" 

Eu acho que é exatamente o que você precisa.



-1

Existe uma maneira de fazer isso a partir da própria interface do GitHub.

Vá para a página do projeto e escolha a Codeguia seguida pela Commitssubguia, como mostrado aqui:

insira a descrição da imagem aqui

Isso leva você à sua lista de confirmações. Se você rolar até a parte inferior da página, poderá voltar no tempo clicando no Olderbotão

Eu realmente não consegui encontrar uma maneira de classificá-lo para que os commits sejam mostrados em ordem crescente.


10
Eu já sabia daquilo. A questão era para projetos com históricos de consolidação muito longos .
Randomblue

-2
git log --reverse --format="format:%ci" | sed -n 1p

Se você deseja obtê-lo em uma linha de comando

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.