Pregunta ¿Cómo puedo determinar la URL desde la cual se clonó originalmente un repositorio local de Git?


Saqué un proyecto de GitHub hace unos días. Desde entonces, descubrí que hay varios tenedores en GitHub, y olvidé notar cuál tomé originalmente. ¿Cómo puedo determinar cuál de esos tenedores extraje?


2768
2017-11-03 16:47


origen


Respuestas:


Si solo desea la URL remota, o la integridad referencial se ha roto:

git config --get remote.origin.url

Si necesita una salida completa o la integridad referencial está intacta:

git remote show origin

Cuando usas git clone (desde GitHub, o cualquier repositorio fuente para ese asunto) el nombre predeterminado para el origen del clon es "origen". Utilizando git remote show mostrará la información sobre este nombre remoto. Las primeras líneas deberían mostrar:

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 desea usar el valor en la secuencia de comandos, usaría el primer comando enumerado en esta respuesta.


3926
2017-11-03 16:50



Si lo desea con fines de scripting, puede obtener solo la URL con

git config --get remote.origin.url

497
2017-11-03 19:35



Puedes probar:

git remote -v

Imprimirá todas las URL de búsqueda / inserción de sus controles remotos.


421
2018-01-29 12:01



Para obtener la respuesta:

git ls-remote --get-url [REMOTE]

Esto es mejor que leer la configuración; referirse a página de hombre para git-ls-remote:

--get-url

Expandir la URL del repositorio remoto dado teniendo en cuenta   alguna "url.<base>.insteadOf" ajuste de configuración (Ver git-config(1)) y   salir sin hablar con el control remoto.

Como señaló @Jefromi, esta opción se agregó en v1.7.5 y no documentado hasta v1.7.12.2 (2012-09).


195
2018-06-02 05:15



Con Git 2.7 (lanzamiento 5 de enero de 2015), tiene una solución más coherente usando git remote:

git remote get-url origin

(bonito colgante de git remote set-url origin <newurl>)

Ver cometer 96f78d3 (16 de septiembre de 2015) por Ben Boeckel (mathstuf).
(Fusionado por Junio ​​C Hamano - gitster - en cometer e437cbd, 05 de octubre de 2015):

remoto: agrega el submandato get-url

En expansión insteadOf es una parte de ls-remote --url y no hay forma   expandir pushInsteadOf también.
  Agrega un get-url subcomando para poder consultar tanto como una forma de obtener todas las URL configuradas.

get-url:

Recupera las URL de un control remoto.
  Configuraciones para insteadOf y pushInsteadOf se expanden aquí.
  De manera predeterminada, solo se muestra la primera URL.

  • Con '--push', se consultan URL push en lugar de buscar URL.
  • Con '--all', se enumerarán todas las URL para el control remoto.

Antes de git 2.7, tenías:

 git config --get remote.[REMOTE].url
 git ls-remote --get-url [REMOTE]
 git remote show [REMOTE]

63
2017-10-07 12:07



Para resumir, hay al menos cuatro formas:

(Se intentó lo siguiente para el repositorio oficial de Linux)

Menos información:

$ git config --get remote.origin.url
https://github.com/torvalds/linux.git

y

$ git ls-remote --get-url
https://github.com/torvalds/linux.git

Más información:

$ git remote -v
origin    https://github.com/torvalds/linux.git (fetch)
origin    https://github.com/torvalds/linux.git (push)

Aún más información:

$ 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)

43
2018-05-15 15:28



Respuesta corta:

$ git remote show -n origin

o, una alternativa para scripts rápidos puros:

$ git config --get remote.origin.url

Alguna información:

  1. $ git remote -v imprimirá todos los controles remotos (no lo que desea). Quieres origen, ¿verdad?
  2. $ git remote show origin mucho mejor, solo muestra origin pero lleva demasiado tiempo (probado en la versión de Git 1.8.1.msysgit.1).

Terminé con: $ git remote show -n origin, que parece ser el más rápido. Con -n no buscará cabezales remotos (ramas AKA). No necesitas ese tipo de información, ¿verdad?

http://www.kernel.org/pub//software/scm/git/docs/git-remote.html

Puedes aplicar | grep -i fetch a las tres versiones para mostrar solo la URL de búsqueda.

Si necesita velocidad pura, entonces use:

$ git config --get remote.origin.url

Gracias a @Jefromi para señalar eso.


16
2018-02-27 18:11



Creo que puedes encontrarlo debajo .git/config y remote["origin"] si no manipulaste eso.


15
2017-11-03 16:50



El control remoto de la fuente no se puede llamar "origen", así que aquí hay una variación:

remote=$(git config --get branch.master.remote)
url=$(git config --get remote.$remote.url)
basename=$(basename "$url" .git)
echo $basename

O:

basename $(git config --get remote.$(git config --get branch.master.remote).url) .git

Para las variables más útiles, hay:

$ git config -l

8
2018-04-19 20:49



Para obtener la dirección IP / nombre de host de origin

por ssh:// repositorios:

git ls-remote --get-url origin | cut -f 2 -d @ | cut -f 1 -d "/"

por git:// repositorios:

git ls-remote --get-url origin | cut -f 2 -d @ | cut -f 1 -d ":"

6
2018-06-24 20:54