Wie finde ich das Datum des ersten Commits in einem GitHub-Repository?


45

Wie finde ich bei einem GitHub-Repository schnell das Datum des ersten Commits?

Ich möchte oft wissen, wie alt das Projekt ist, finde aber keinen schnellen Weg, um bei Projekten mit sehr langen Festschreibungsverläufen an den Anfang der Festschreibungsverläufe zu gelangen.


1
Thread auf SO könnte hilfreich sein Wie dasgit log --reverse
Anzeigen des

Antworten:


46

Klicken Sie auf die Registerkarte "Einblicke" des Repositorys, dessen ältester Commit angezeigt werden soll, gefolgt von der Unterregisterkarte "Netzwerk" in der linken Menüleiste. Wenn die Seite vollständig geladen ist (dh wenn Sie sehen, dass viele Zeilen verbunden sind), drücken Sie Shift+ , um zum ersten Festschreiben zu gelangen. Klicken Sie auf den Punkt, der das erste Festschreiben darstellt, und Sie können es erhalten.

Hinweis: Dies funktioniert nur für Repositorys, die ursprünglich auf GitHub erstellt wurden, nicht für Repositorys, die von einem anderen Ort importiert wurden (dh Commits, die nicht über GitHub selbst registriert wurden). Diese Methode funktioniert möglicherweise auch nicht unbedingt, wenn das Repository über zu viele Gabeln verfügt.

Alternativ können Sie das Repository auf Ihren lokalen Computer klonen und den folgenden Befehl ausführen:

git log --reverse

Die Commits des Repositorys werden dann in umgekehrter Reihenfolge angezeigt (ältestes Commit zuerst).


4
Funktioniert nicht, wenn das Repo zu viele Gabeln hat.
Mike McKay

3
"Netzwerk" finden Sie unter der Registerkarte "Grafiken" (nur für den Fall)
Jedidja

Funktioniert nicht, wenn der Standardzweig nicht das früheste Commit hat.
Hören Sie auf, Monica

Es gibt eine ähnliche Frage zum Stapelüberlauf. Würde es Ihnen etwas ausmachen, diese Antwort abzustimmen?
Stevoisiak

-1funktioniert nicht mit --reverse, um das älteste Commit zu erhalten, da das Limit vor dem Filter liegt.
Quolonel Fragen

14

Wenn Sie das Repo geklont haben, verwenden Sie einfach wie gewohnt git-Befehle:

// cd to repo
$ git log --reverse

Es zeigt Ihnen die Historie der Commits in umgekehrter Reihenfolge. LOL.-


13

Die Antwort von Hydra funktioniert möglicherweise nicht bei Projekten mit vielen Gabeln: " Netzwerkdiagramm konnte nicht geladen werden. Zu viele Gabeln zum Anzeigen. "

Sie können die Registerkarte "Contributors" unter "Graphs" überprüfen.

Registerkarte "Mitwirkende" in "Grafiken"


Wenn Sie mit dem Pinsel den ganz linken Rand des Diagramms auswählen und dann für den ersten Committer auf # commits klicken, werden die Commits tatsächlich angezeigt.
Gordon

@ Gordon, das ist nicht sehr hilfreich, es zeigt nur alle Commits für diese Person
Steven Penny

@StevenPenny, die Frage war nur, wie man das Datum des ersten Commits erhält. Zugegeben, es ist chaotisch, aber wenn Sie nur die linke Kante auswählen, wird das erste Commit angezeigt. Ich bevorzuge die dedizierte Seite, die ich in meiner Antwort unten verlinkt habe .
Gordon

Funktioniert nicht, wenn der Standardzweig nicht das früheste Commit hat.
Hören Sie auf, Monica

Dies ist der beste
Code Whisperer

1

Dies bringt Sie zur letzten Seite:

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

Beispiel:

$ 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

Quelle


1

Hier ist eine Site, die nur nach dem ersten Festschreiben auf GitHub sucht, um Probleme mit langen Festschreibeverläufen und zu vielen Forks zu vermeiden:

http://first-commit.com/

Diskussion über Hacker News .

... Welche Notizen, dass dies nur die Website kratzen, und berechnen, zu welcher Seite zu springen. Es wäre weitaus besser, die API zu verwenden.


1
Funktioniert nicht, wenn der Standardzweig nicht das früheste Commit hat.
Hören Sie auf, Monica

0

Sie können das UNIX-Sed-Tool verwenden, um nur das Datum des ersten Commits mit zu filtern

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

Ich denke es ist genau das, was du brauchst.


-1

Es gibt eine Möglichkeit, dies über die GitHub-Oberfläche selbst zu tun.

Gehen Sie zur Projektseite und wählen Sie die CodeRegisterkarte, gefolgt von der CommitsUnterregisterkarte, wie hier gezeigt:

Bildbeschreibung hier eingeben

Das bringt Sie zu Ihrer Liste von Commits. Wenn Sie dann zum Ende der Seite scrollen, können Sie die Zeit zurückverfolgen, indem Sie auf die OlderSchaltfläche klicken .

Ich konnte nicht wirklich einen Weg finden, es so zu sortieren, dass die Commits in aufsteigender Reihenfolge angezeigt werden.


10
Ich wusste das bereits. Die Frage war für Projekte mit sehr langer Commit-Historie .
Randomblue

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

Wenn Sie es von einer Befehlszeile erhalten möchten

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.