Comment trouver la date du premier commit dans un référentiel GitHub?


46

Étant donné un référentiel GitHub, comment puis-je trouver rapidement la date de son premier commit?

Je veux souvent savoir quel âge a le projet, mais je ne trouve pas de moyen rapide d’arriver au début des historiques de validation pour les projets comportant de très longs historiques de validation.


1
Un fil sur SO pourrait être utile. Comment afficher le premier commit par 'git log' ressemble à git log --reverseaffichera les commits du plus ancien au plus récent
batpigandme

Réponses:


46

Cliquez sur l'onglet "Insights" du référentiel dans lequel vous souhaitez voir la validation la plus ancienne, suivi du sous-onglet "Réseau" dans la barre de menu de gauche. Lorsque la page est complètement chargée (vous pouvez voir beaucoup de lignes se joindre et toutes), appuyez sur Shift+ pour aller jusqu'au premier commit. Cliquez sur le point qui représente le premier commit et vous pourrez l’obtenir.

Remarque: Ceci ne fonctionne que pour les référentiels créés à l'origine sur GitHub et non pour les référentiels importés d'un autre lieu (c'est-à-dire des commits non enregistrés via GitHub lui-même). De plus, cette méthode peut ne pas nécessairement fonctionner si le référentiel a trop de forks.

Vous pouvez également cloner le référentiel sur votre ordinateur local et exécuter la commande suivante:

git log --reverse

Les commits du référentiel seront alors affichés dans l'ordre inverse (les plus anciens en premier).


4
Ne fonctionne pas si le repo a trop de fourches.
Mike McKay

3
"Réseau" se trouve sous l'onglet latéral "Graphes" (juste au cas où)
Jedidja

Ne fonctionne pas si la branche par défaut n'a pas le commit le plus ancien.
Cessez de nuire à Monica

Il y a une question similaire sur Stack Overflow. Cela vous dérangerait-il de poster cette réponse?
Stevoisiak

-1ne fonctionne pas --reversepour obtenir le commit le plus ancien car la limite est antérieure au filtre.
Quolonel Questions

14

Si vous avez cloné le référentiel, utilisez simplement les commandes git comme d'habitude:

// cd to repo
$ git log --reverse

il vous montrera l'histoire des commits dans l'ordre inverse. LOL.-


13

La réponse d'Hydra peut ne pas fonctionner avec des projets comportant beaucoup de fourchettes: " Impossible de charger le graphe réseau. Trop de fourches à afficher. "

Vous pouvez vérifier l'onglet "Contributors" sous "Graphs"

Onglet "Contributeurs" dans "Graphes"


Si vous sélectionnez le bord tout à gauche du graphique à l'aide du pinceau, puis cliquez sur le # commit pour le premier commetteur, vous verrez en réalité les commits.
Gordon

@Gordon qui n'est pas très utile, il montre simplement tous les commits pour cette personne
Steven Penny

@StevenPenny, la question était simplement de savoir comment obtenir la date du premier commit. Certes, c'est compliqué, mais si vous sélectionnez uniquement le bord gauche, vous verrez le premier commit. Je préfère le site dédié que j'ai lié dans ma réponse ci-dessous .
Gordon

Ne fonctionne pas si la branche par défaut n'a pas le commit le plus ancien.
Cessez de nuire à Monica

C'est le meilleur
Code Whisperer

1

Cela vous donnera la dernière page:

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

Exemple:

$ 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

La source


1

Voici un site qui ne recherche que le premier commit sur GitHub, en évitant les problèmes d'historique de commit longs et de trop de forks:

http://first-commit.com/

Discussion sur Hacker News .

... Ce qui indique qu'il s'agit simplement de gratter le site Web et de calculer la page à laquelle accéder. Il serait de loin préférable d'utiliser l'API.


1
Ne fonctionne pas si la branche par défaut n'a pas le commit le plus ancien.
Cessez de nuire à Monica

0

Vous pouvez utiliser l’outil unix sed pour filtrer uniquement la date du premier commit en utilisant

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

Je pense que c'est exactement ce dont vous avez besoin.


0

Vous pouvez utiliser cette petite application https://firstcommit.netlify.com


2
Bien que ce lien puisse répondre à la question, il est préférable d’inclure ici les parties essentielles de la réponse et de fournir le lien pour référence. Les réponses avec lien uniquement peuvent devenir non valides si la page liée est modifiée. - De l'avis
serenesat

-1

Il existe un moyen de le faire à partir de l'interface GitHub elle-même.

Allez sur la page du projet et sélectionnez l’ Codeonglet suivi du Commitssous-onglet comme indiqué ici:

entrez la description de l'image ici

Cela vous amène à votre liste de commits. Si vous faites ensuite défiler la page jusqu'en bas, vous pouvez revenir en arrière en cliquant sur le Olderbouton.

Je ne pouvais pas vraiment trouver un moyen de le trier de sorte que les commits soient affichés par ordre croissant.


10
Je le savais déjà. La question était pour les projets avec une très longue histoire de commit .
Randomblue

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

Si vous voulez l'obtenir à partir d'une ligne de commande

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.