Tengo un script llamado 'git-export' que me ayuda a exportar un repositorio remoto. Se ejecuta así:Cómo ejecutar comandos git en remoto sin tener el repositorio local
git-export http://host.com/git-repo <-t tag or -b branch or -c commit> /local/dir
Antes de que se utiliza para exportar repositorio local y utiliza estos comandos:
para obtener cometer de rama:
git branch -v --no-abbrev|awk '($1=="'$BRANCH'") || ($1 == "*" && $2 == "'$BRANCH'"){if($1 == "*"){print $3;}else{print $2;}}'
o
git rev-parse -q --verify $BRANCH^{commit}
para obtener commit por la etiqueta:
git rev-parse -q --verify $TAG^{commit}
También tengo guiones para mostrar las etiquetas (tags, versiones, comenzando con v), utilizo git rama -v para mostrar ramas ....
La pregunta es: ¿Cómo puedo hacer estas cosas en el control remoto repositorio sin tener local. ¿Hay alguna forma general de consultar remotamente? Por ejemplo: git --remote=http://host.com/repo branch -v
o git --remote=http://host.com/repo log
Resion: Si quiero instalar el software en el host remoto sólo quiero versiones
- lista, ramas, etc
- exportación específico versión/sucursal/comprometerse y mostrar SHA1 de la confirmación, independientemente cuál de estos exporto (por exportación quiero decir
git archive --remote=<repo>|tar x
)
edición:
No quiero que actionalyl ejecute los comandos en remoto. Quiero usar el repositorio remoto con comandos locales y mostrarlo formateado.
que parece bastante útil y creo que hará el trabajo, pero ¿hay un comando que acepte --format argument? Uno de los problemas con este formato:^{} significa que este es el compromiso al que apunta la etiqueta. Sin embargo, si la etiqueta es liviana, la confirmación sha1 será sin^{}. Quiero obtener el sha1 de la confirmación al listar las etiquetas, independientemente del tipo de etiqueta. Usé 'for-each-ref' con --format para hacer eso. ver 'man git-for-each-ref' – NickSoft
@NickSoft: Sí, sé a qué te refieres, pero creo que probablemente tendrás que hacerlo tú mismo. Si puede contar con todas las etiquetas que se anotan (lo que probablemente sea una buena práctica), puede hacer 'git ls-remote refs/tags/*^{}', pero de lo contrario, creo que tendrá que leer la lista y hacer un poco de post-procesamiento. (Por supuesto, tenga en cuenta que puede usar el SHA1 de la etiqueta comentada para 'git archive' de todos modos, por lo que también podría quitar todas las confirmaciones apuntadas con un' grep -v '\^{} $' 'y ser hecho con eso.) –
Cascabel