J'ai retiré un projet de GitHub il y a quelques jours. J'ai découvert depuis qu'il existe plusieurs forks sur GitHub, et j'ai négligé de noter lequel j'ai pris à l'origine.
Comment puis-je déterminer laquelle de ces fourches j'ai tiré ?
J'ai retiré un projet de GitHub il y a quelques jours. J'ai découvert depuis qu'il existe plusieurs forks sur GitHub, et j'ai négligé de noter lequel j'ai pris à l'origine.
Comment puis-je déterminer laquelle de ces fourches j'ai tiré ?
Si vous souhaitez uniquement l'URL distante, ou si vous n'êtes pas connecté à un réseau qui peut atteindre le dépôt distant :
git config --get remote.origin.url
Si vous avez besoin d'une sortie complète et que vous sont sur un réseau qui peut atteindre le repo distant où réside l'origine :
git remote show origin
Lorsque vous utilisez git clone
(de GitHub, ou de tout autre dépôt de sources), le nom par défaut de la source du clone est "origin". Utilisation de git remote show
affichera les informations sur ce nom distant. Les premières lignes devraient être affichées :
C:\Users\jaredpar\VsVim> git remote show origin
* remote origin
Fetch URL: git@github.com:jaredpar/VsVim.git
Push URL: git@github.com:jaredpar/VsVim.git
HEAD branch: master
Remote branches:
Si vous voulez utiliser la valeur dans le script, vous utiliserez la première commande listée dans cette réponse.
Utilisez git config comme décrit ci-dessous à la place si vous utilisez jgit avec amazon-s3.
Bien que cela n'ait rien à voir avec l'objet de la question initiale, veuillez noter que si vous tentez d'obtenir l'"URL de poussée" et que plusieurs URL sont saisies pour la télécommande spécifiée, vous devrez utiliser soit git remote show origin
(optionnellement avec l'option -n fournie par @Casey), ou avec git remote -v
comme suggéré par @Montaro et @rodel.
Dans quel fichier cela est-il écrit ? Je pensais que le .gitconfig
Le dossier l'aurait, mais je ne l'ai pas vu dans le mien.
C'est la bonne réponse. C'est beaucoup plus rapide et cela fonctionne même si l'url distante n'est plus disponible ( git remote show origin
affiche simplement "conq : repository does not exist.").
Ce n'est pas tout à fait la bonne réponse à cause de l'option de configuration. url.<base>.insteadOf
. Voir ma réponse - git a une commande à cet effet.
@arcresu Cool, +1 à toi ! Pour ma défense, cette commande n'a pas été ajoutée avant mars 2011, et elle n'a pas été documentée avant septembre 2012.
Pour obtenir la réponse :
git ls-remote --get-url [REMOTE]
C'est mieux que de lire la configuration ; reportez-vous à la rubrique page de manuel pour git-ls-remote
:
--get-url
Développe l'URL du référentiel distant donné en tenant compte des éléments suivants de tout
"url.<base>.insteadOf"
(Voirgit-config(1)
) et sortir sans parler à la télécommande.
Comme l'a souligné @Jefromi, cette option a été ajoutée en v1.7.5 et non documenté jusqu'à ce que v1.7.12.2 (2012-09).
Bonne idée : cela permettrait également d'obtenir la même chose pour les versions antérieures > git remote -v| grep fetch|awk '{print $2}''
Je pense que la plupart des autres réponses sont plus une démonstration des commandes git et une exposition de l'histoire de git. C'est la seule réponse qui ne suppose pas que votre amont s'appelle origin
.
Je l'essaie en utilisant le dépôt officiel de Linux :
$ git config --get remote.origin.url
https://github.com/torvalds/linux.git
et
$ git ls-remote --get-url
https://github.com/torvalds/linux.git
$ git remote -v
origin https://github.com/torvalds/linux.git (fetch)
origin https://github.com/torvalds/linux.git (push)
$ git remote show origin
* remote origin
Fetch URL: https://github.com/torvalds/linux.git
Push URL: https://github.com/torvalds/linux.git
HEAD branch: master
Remote branch:
master tracked
Local branch configured for 'git pull':
master merges with remote master
Local ref configured for 'git push':
master pushes to master (up to date)
Nota git config --get remote.origin.url
récupère l'URL originale qui a été définie avec git remote add ...
o git remote set-url ...
tandis que git ls-remote --get-url origin
récupère l'URL qui est effectivement utilisée pour accéder au site distant - qui peut être différent en présence de git config --global url.XXX.insteadOf YYY
. Les deux sorties peuvent donc différer ! Notez également que git ls-remote --get-url
(sans origin
) ne récupère pas nécessairement origin
Au lieu de cela, il affiche le suivi en amont, ce qui fait qu'il échouera par exemple dans l'état détaché HEAD.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
303 votes
Avec git 2.7 (Q4 2015),
git remote get-url origin
sera possible. Voir ma réponse ci-dessous37 votes
git remote get-url origin
ne fonctionne pas pour moi - peut-être déprécié ?git remote show origin
a fonctionné cependant.86 votes
git remote -v
vous donner beaucoup d'informations, dont celle-ci.3 votes
git remote get-url origin --push
fonctionne bien, n'est apparemment pas déprécié et fournit de brèves informations (git remote show origin
peut être très verbose) q.v.git help remote
.