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).
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
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!
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
.
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.
Je voulais voir l'un des plus anciens commits du projet nodejs . J'ai fait ce qui suit.
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
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
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 branchemaster
, mais si vous modifiez lebranch
sur la page d'arrivée, il passera au premier commit de cette branche.
Disclaimer : J'ai envoyé un petite mise à jour du fichier Readme to init quelques minutes avant de poster cette réponse.
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.
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();