Jak znaleźć datę pierwszego zatwierdzenia w repozytorium GitHub?

46

Biorąc pod uwagę repozytorium GitHub, jak mogę szybko znaleźć datę jego pierwszego zatwierdzenia?

Często chcę wiedzieć, ile lat ma ten projekt, ale nie mogę znaleźć szybkiego sposobu na rozpoczęcie historii zatwierdzeń dla projektów z bardzo długą historią zatwierdzeń.

Randomblue
źródło
1
Wątek na temat SO może być pomocny Jak pokazać pierwsze zatwierdzenie za pomocą „git log”, wygląda jak git log --reversepokazuje zatwierdzenia od najwcześniejszego do najnowszego
batpigandme

Odpowiedzi:

46

Kliknij kartę „Statystyki” repozytorium, w którym chcesz zobaczyć najstarsze zatwierdzenie, a następnie kartę podrzędną „Sieć” na lewym pasku menu. Gdy strona jest w pełni załadowana (tzn. Widać wiele łączących się linii i wszystkie), naciśnij Shift+, aby przejść do pierwszego zatwierdzenia. Kliknij kropkę reprezentującą pierwszy zatwierdzenie i możesz go zdobyć.

Uwaga: Działa to tylko w przypadku repozytoriów utworzonych pierwotnie w GitHub, a nie repozytoriów importowanych z innego miejsca (tzn. Zatwierdzeń niezarejestrowanych za pośrednictwem samego GitHub). Ponadto ta metoda może niekoniecznie działać, jeśli repozytorium ma zbyt wiele rozwidleń.

Alternatywnie można sklonować repozytorium na komputerze lokalnym i uruchomić następującą komendę:

git log --reverse

Zatwierdzenia repozytorium zostaną następnie wyświetlone w odwrotnej kolejności (najpierw najstarsze zatwierdzenie).

Hydra
źródło
4
Nie działa, jeśli repozytorium ma zbyt wiele widelców.
Mike McKay
3
„Sieć” znajduje się pod boczną zakładką „Wykresy” (na wszelki wypadek)
Jedidja
Nie działa, jeśli domyślna gałąź nie ma najwcześniejszego zatwierdzenia.
Stop Harming Monica,
Jest to podobne pytanie na przepełnienie stosu. Czy masz coś przeciwko opublikowaniu tej odpowiedzi?
Stevoisiak,
-1nie działa w --reversecelu uzyskania najstarszego zatwierdzenia, ponieważ limit występuje przed filtrem.
Pytania do Quolonel
14

Jeśli sklonowałeś repozytorium, po prostu użyj poleceń git jak zwykle:

// cd to repo
$ git log --reverse

pokaże historię zmian w odwrotnej kolejności. LOL.-

Igor Parra
źródło
13

Odpowiedź Hydry może nie działać w przypadku projektów z dużą liczbą widelców: „ Nie można załadować wykresu sieciowego. Zbyt wiele widelców do wyświetlenia ”.

Możesz sprawdzić zakładkę „Współtwórcy” w „Wykresach”

Karta „Współtwórcy” w „Wykresach”

Uładzimir
źródło
Jeśli wybierzesz lewą krawędź wykresu za pomocą pędzla, a następnie kliknij # commits dla pierwszego committera, faktycznie zobaczysz commits.
Gordon,
@Gordon, który nie jest zbyt pomocny, pokazuje tylko wszystkie zobowiązania dla tej osoby
Steven Penny
@StevenPenny, pytanie dotyczyło tylko tego, jak uzyskać datę pierwszego zatwierdzenia. To prawda, że ​​jest bałagan, ale jeśli wybierzesz tylko lewą krawędź, zobaczysz pierwsze zatwierdzenie. Wolę dedykowaną witrynę, do której link podałem w odpowiedzi poniżej .
Gordon,
Nie działa, jeśli domyślna gałąź nie ma najwcześniejszego zatwierdzenia.
Stop Harming Monica,
To jest najlepsze
Code Whisperer
1

Otrzymasz ostatnią stronę:

#!/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

Przykład:

$ 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

Źródło

Steven Penny
źródło
1

Oto strona, która szuka tylko pierwszego zatwierdzenia w GitHub, unikając problemów z długą historią zatwierdzeń i zbyt dużą liczbą rozwidleń:

http://first-commit.com/

Dyskusja na temat hakerów .

... Który zauważa, że ​​jest to po prostu skrobanie strony internetowej i obliczanie, do której strony należy przejść. Lepiej byłoby użyć interfejsu API.

Gordon
źródło
1
Nie działa, jeśli domyślna gałąź nie ma najwcześniejszego zatwierdzenia.
Stop Harming Monica,
0

Możesz użyć narzędzia unix sed do filtrowania tylko daty pierwszego użycia zatwierdzenia

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

Myślę, że dokładnie tego potrzebujesz.

Petrillo
źródło
-1

Można to zrobić z poziomu samego interfejsu GitHub.

Przejdź na stronę projektu i wybierz Codezakładkę, a następnie Commitspodkartę, jak pokazano tutaj:

wprowadź opis zdjęcia tutaj

To prowadzi cię do twojej listy zobowiązań. Jeśli następnie przewiniesz do dołu strony, możesz cofnąć się w czasie, klikając Olderprzycisk.

Naprawdę nie mogłem znaleźć sposobu, aby to posortować, aby zatwierdzenia były wyświetlane w kolejności rosnącej.

karancan
źródło
10
Wiedziałem już, że. Pytanie dotyczyło projektów z bardzo długą historią zatwierdzania .
Randomblue
-2
git log --reverse --format="format:%ci" | sed -n 1p

Jeśli chcesz go pobrać z wiersza poleceń

darda
źródło