web-dev-qa-db-fra.com

Comment accéder au premier commit dans un référentiel Github?

Dans GitHub, existe-t-il un moyen simple de naviguer jusqu'au premier commit d'un grand projet open source?

Le projet compte plus de 13 000 validations à ce jour. Je ne veux pas avoir à appuyer sur le bouton "Plus ancien" de la page d'historique des validations des centaines et des centaines de fois pour arriver au commit initial (ou au premier commit).

96
jdw

Clonez le référentiel, ouvrez-le avec la ligne de commande et exécutez $ git log --reverse

Cela affichera les commits dans l'ordre inverse.

Ensuite, vous pouvez le voir sur github une fois que vous avez l'ID (nom d'objet) du premier commit ... quelque chose comme ... https://github.com/UserName/Repo/commit/6a5ace7b941120db5d2d50af6321770ddad4779e

71
Schmalzy

Février 2015: Dans GitHub , existe-t-il un moyen simple de naviguer jusqu'au premier commit d'une grande source ouverte projet?

Oui il y a maintenant! (Signification: sans clonez le référentiel et appliquez git log dans le clone local)

Depuis janvier 2017, vous avez " Naviguer dans l'historique des fichiers plus rapidement avec une vue améliorée des fautes " sur GitHub.

Que vous soyez en train de déboguer une régression ou d'essayer de comprendre comment un code a pris sa forme actuelle, vous aurez souvent envie de voir à quoi ressemblait un fichier avant un changement particulier.
Grâce à l’affichage amélioré des blâmes, vous pouvez facilement voir comment une partie de votre fichier a évolué au fil du temps sans afficher l’historique complet du fichier .

Voici une démo qui revient au plus ancien commit original du git/git repo lui-même (47K + commits) ... en trois clics!

demo git/git

Le truc ici est de choisir un fichier susceptible de se trouver dans le premier (ou très tôt) commit, comme un README.md.

43
VonC

Il n'y a pas d'interface utilisateur évidente à faire, mais il y a un moyen de construire la bonne URL pour aller à la première page du journal de commit.

Supposons que nous voulions trouver le premier commit du dépôt référentiel dotnet/coreclr . Prenez d’abord le nombre de commits dans le référentiel: il est actuellement de 16 634. Maintenant, allez à la liste des commits, et cliquez une fois sur "Plus ancien" . L'URL ressemblera à ceci: https://github.com/dotnet/coreclr/commits/master?after=872095a758a3a6191a9798c94a98e8d1e16b2254+34

Remarquez le +34 partie. C'est combien de commits sont ignorés. Changez cela en 16 634 moins 1 moins 35 par page, cela nous donne cette URL , ce qui vous amène directement à la première page de l’historique des commits.

41
Roman Starkov

Je voulais voir l'un des plus anciens commits du projet nodejs . J'ai fait ce qui suit.

  1. Visité le site nodejs . Nous avons ensuite observé que le nombre total de commits est d’environ vingt-trois mille (23652 pour être précis) à ce stade.

enter image description here

  1. Ensuite, j'ai cliqué sur le lien qui valide et cela m'a amené à https://github.com/nodejs/node/commits/master comme indiqué ci-dessous.

enter image description here

  1. Maintenant, faites défiler jusqu'à la fin et j'ai trouvé les boutons plus récents et plus anciens. Le bouton Plus récent est désactivé. J'ai cliqué sur l'ancien bouton et il m'a fallu https://github.com/nodejs/node/commits/master?after=de37ba34c5d6f3a2d18daf482f850be8fddb4621+34

  2. Maintenant, observez que l'url a +34. Maintenant, j'ai changé cela à 23000 (puisque le nombre de commits que j'avais observés est de 23000). Donc, la nouvelle URL que j'ai essayée est

https://github.com/nodejs/node/commits/master?after=de37ba34c5d6f3a2d18daf482f850be8fddb4621+230

  1. Maintenant j'y suis presque. Avec quelques itérations supplémentaires ou par des clics de bouton plus anciens, j'ai atteint l'endroit où je voulais.
18
VivekDev

Vous pouvez naviguer jusqu'au premier commit d'un référentiel GitHub en utilisant le init bookmarklet .

INIT

Un bookmarklet pour vous amener rapidement au premier commit d'un repo.

Vue d'ensemble

Il est très utile d’être en mesure de naviguer rapidement vers le plus ancien commit dans un référentiel. Allez-y et faites glisser le bookmarklet (lien) sur votre barre de favoris et cliquez dessus chaque fois que vous souhaitez aller au premier commit d'un repo.

Usage

Accéder à la page de destination d'un dépôt en particulier (e.g. like the one you're on) et cliquez sur le bookmarklet, qui vous mènera à la première page (commit initial). Par défaut, il suit la branche master, mais si vous modifiez le branch sur la page d'arrivée, il passera au premier commit de cette branche.

extrait de README.md sur GitHub


Disclaimer : J'ai envoyé un petite mise à jour du fichier Readme to init quelques minutes avant de poster cette réponse.

6
Stevoisiak

Vous devez utiliser le git log --reverse commande de git.

Cela renverra l'historique des commits pour le repo spécifié dans l'ordre inverse (du plus ancien au plus récent).

Ensuite, avec l’aide de la magie sed, vous pourriez avoir quelque chose comme la date du premier commit (c’est ce que j’ai vu et dont j’ai toujours eu besoin pour moi).

git log --reverse | sed -n 3p

En fin de compte, vous voudrez peut-être aussi automatiser cela ((étant donné qu’il est généralement ennuyeux de taper la commande ou tout simplement impossible de le retenir), un script Shell comme celui-ci pourrait venir à la rescousse.

5
thodorisbais

Vous pouvez accéder à la première page des commits avec les éléments suivants, que je conserve sous forme d’extrait dans Chrome dev tools.

function githubFirstCommitsPage() {
  let el = document.querySelector('.repository-content');
  let base = el.querySelector('a[data-pjax]').href;
  let count = el.querySelector('.commits .num')
    .textContent
    .trim()
    .replace(/[^\d\.\-]/g, "");
  count = count-36;
  let sha = el.querySelector('.commit-tease-sha')
    .href
    .split('/');
  sha = sha[sha.length-1];
  window.location = `${base}?after=${sha}+${count}`;   
}

githubFirstCommitsPage();
4
Michael Terry