Cuando haces tu primer clon usando la sintaxis
git clone username@server:gitRepo.git
¿Es posible usar su repositorio local para encontrar el nombre de ese clon inicial?
(Entonces, en el ejemplo anterior, busque gitRepo.git
).
Cuando haces tu primer clon usando la sintaxis
git clone username@server:gitRepo.git
¿Es posible usar su repositorio local para encontrar el nombre de ese clon inicial?
(Entonces, en el ejemplo anterior, busque gitRepo.git
).
Respuestas:
En la raíz del repositorio, el .git/config
archivo contiene toda la información sobre repositorios y sucursales remotos. En su ejemplo, debería buscar algo como:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = server:gitRepo.git
Además, el comando Git git remote -v
muestra el nombre y la URL del repositorio remoto. El repositorio remoto "origen" generalmente corresponde al repositorio original, desde el cual se clonó la copia local.
git remote show origin
para ver mucha más información sobre ese control remoto.
git remote -v
solo lee y escribe .git/config
.
git config --get remote.origin.url
git remote show origin
llama a la red.
Este es un comando rápido de Bash, que probablemente esté buscando, imprimirá solo un nombre base del repositorio remoto:
Cuando usted lo trae desde :
basename $(git remote show -n origin | grep Fetch | cut -d: -f2-)
Alternativamente, donde empuja a :
basename $(git remote show -n origin | grep Push | cut -d: -f2-)
Especialmente la -n
opción hace que el comando sea mucho más rápido.
Me encontré con esta pregunta tratando de obtener la organization/repo
cadena de un host de git como github o gitlab.
Esto es trabajo para mí:
git config --get remote.origin.url | sed -e 's/^git@.*:\([[:graph:]]*\).git/\1/'
Se usa sed
para reemplazar la salida del git config
comando con solo la organización y el nombre del repositorio.
Algo parecido github/scientist
a coincidiría con la clase de carácter [[:graph:]]
en la expresión regular.
El \1
le dice a sed que reemplace todo solo con los caracteres coincidentes.
git config --get remote.origin.url | sed -e 's/^git@.*:\([[:graph:]]*\).git/\1/'
git remote show origin -n | ruby -ne 'puts /^\s*Fetch.*(:|\/){1}([^\/]+\/[^\/]+).git/.match($_)[2] rescue nil'
Se probó con tres estilos de URL diferentes:
echo "Fetch URL: http://user@pass:gitservice.org:20080/owner/repo.git" | ruby -ne 'puts /^\s*Fetch.*(:|\/){1}([^\/]+\/[^\/]+).git/.match($_)[2] rescue nil'
echo "Fetch URL: Fetch URL: git@github.com:home1-oss/oss-build.git" | ruby -ne 'puts /^\s*Fetch.*(:|\/){1}([^\/]+\/[^\/]+).git/.match($_)[2] rescue nil'
echo "Fetch URL: https://github.com/owner/repo.git" | ruby -ne 'puts /^\s*Fetch.*(:|\/){1}([^\/]+\/[^\/]+).git/.match($_)[2] rescue nil'