La commande que vous voulez est celle git ls-remote
qui vous permet d'obtenir des informations sur les référentiels distants, mais vous ne pouvez pas afficher l'historique ou la liste des répertoires ou quoi que ce soit de ce niveau: essentiellement, cela ne vous permet de voir les objets distants qu'à un très haut niveau (vous pouvez voir le HEADs et tags actuels par exemple).
La seule vraie façon de faire ce que vous voulez (si je comprends bien) serait d'utiliser ssh pour exécuter une commande à distance et renvoyer les résultats, par exemple:
ssh me@otherhost "cd repo && git log -n 10"
Ce que vous voulez, ce serait une belle fonctionnalité s'ils pouvaient l'ajouter, mais d'après ce que j'ai lu, ce n'est pas très facile car obtenir l'historique, etc. a besoin de beaucoup d'informations pour être local à git, et à ce stade, vous pouvez aussi bien avoir fait un git fetch .
git clone
, cependant, est de ne récupérer qu'une seule révision en passant--depth 1
. Cela évite de récupérer des quantités potentiellement importantes d'historique et serait suffisant pour répondre à des questions telles que "quels fichiers sont présents en révisionabcdef1234567890
?"Git est un système de contrôle de version distribué , tandis que Subversion est un système de contrôle de version centralisé (client-serveur). Ils fonctionnent différemment; Habituez-vous à cela. Veuillez lire ma réponse expliquant les conséquences de cette différence par rapport à l' équivalent git de la
svn status -u
question chez StackOverflow.Je me répète un peu: dans un système de contrôle de version centralisé (comme CVS ou Subversion) presque toutes les commandes sont traitées sur le serveur , et impliquent le réseau. Très peu de commandes sont exécutées localement. Notez que pour avoir de bonnes performances de "svn status" et "svn diff" Subversion stocke la "copie vierge" de la version extraite sur le client, pour ne pas avoir à impliquer de transfert réseau pour ces opérations courantes (cela signifie que Subversion checkout = 2 x au moins la taille du répertoire de travail).
Dans un système de contrôle de version distribué (comme Git, Mercurial ou Bazaar), où vous avez une copie locale (clonage) d'un référentiel entier, presque toutes les commandes sont exécutées sur le client . Très peu de commandes nécessitent une connexion réseau à un autre référentiel (au serveur).
Le nombre de commandes que vous pouvez exécuter sur le serveur est limité.
" git archive --remote = <URL> HEAD".
" git clone --depth = 1 <URL>".
la source
Jetez un œil à http://git-scm.com/book/en/Git-Internals-Transfer-Protocols pour plus d'informations sur la façon de procéder avec certains protocoles de transport. Notez que cela ne fonctionnera pas pour git standard sur SSH.
Pour git sur SSH, un git côté serveur à jour devrait vous permettre de git-archiver directement à partir de la télécommande, que vous pourriez alors par exemple diriger vers "tar t" pour obtenir une liste de tous les fichiers dans un commit donné.
la source
GitHub est compatible svn, vous pouvez donc utiliser svn ls
BitBucket prend en charge l'archive git afin que vous puissiez télécharger une archive tar et répertorier les fichiers archivés. Ce n'est pas très efficace mais fonctionne:
la source
Pas l'exact, mais un moyen de contourner.
Utiliser l'API de développement GitHub
L'ouvrir vous donnera les derniers commits.
https://api.github.com/repos/learningequality/ka-lite/commits
Vous pouvez obtenir les détails de validation spécifiques en attachant le hachage de validation à la fin de l'url ci-dessus.
Tous les fichiers (vous avez besoin de sha pour l'arborescence principale)
https://api.github.com/repos/learningequality/ka-lite/git/trees/7b698a988683b161bdcd48a949b01e2b336b4c01
J'espère que cela peut aider.
la source
Ceci est probablement considéré comme sale par certains, mais une solution très pratique dans le cas des référentiels github est simplement de créer un script, par exemple "git-ls":
Le rendre exécutable et accessible bien sûr:
chmod a+x git-ls; sudo cp git-ls /usr/local/bin
. Maintenant, exécutez-le comme vous le souhaitez:Sachez également qu'il existe un
git instaweb
utilitaire pour vos fichiers locaux. Avoir la possibilité d'afficher des fichiers et d'avoir un serveur comme celui-là ne détruit à mon avis aucune des caractéristiques décentralisées inhérentes à git.la source
curl -s https://github.com/Itseez/opencv | grep js-directory-link | sed 's|.* title="\(.*\)".*|\1|'
si vous connaissez la branche distante que vous souhaitez vérifier, vous pouvez trouver la dernière via:
la source