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ń.


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).


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.-


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”


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


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.


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.


-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.


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ń

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.