2012-09-06 25 views
5

Quiero la salida de git log de un repositorio de git, pero no quiero tener que clonar todo el repositorio.Ejecutar `git log` en una rama remota

I.e. Quiero algo semánticamente como la siguiente

git log [email protected]:username/reponame.git

Si hay una manera de hacer esto voy también quiero lo mismo para git whatchanged

Si github ofrece una solución simple para esto yo estaría dispuesto a restringirme a solo repositorios git alojados en github.

+0

creo que iría en contra de Git se distribuye a * * VCS, no? – jeremyharris

+0

posible duplicado de [¿Mostrar registros de git para el rango de confirmaciones en el servidor remoto?] (Http://stackoverflow.com/questions/5958905/show-git-logs-for-range-of-commits-on-remote-server) – jeremyharris

Respuesta

0

Creo que su solución es solo mirar el historial en el sitio web de github.com. Si necesita git log para trabajar desde la línea de comandos, necesita su propio clon del repositorio.

En teoría, podría escribir una herramienta de línea de comandos que extraiga la información de confirmación de la API de github, pero esto se limitaría a mostrar solo mensajes de confirmación/metadatos, y no diffs reales.

3

Usted podría hacer un clon sin profundidad, lo que limitaría la cantidad de cosas que tendría a buscar si sólo se necesita la historia reciente:

git clone --depth 100 ... 
0

La forma Unix es tener una cuenta shell:

ssh [email protected] cd reponame.git '&&' git log 

y

ssh [email protected] cd reponame.git '&&' git whatchanged 

Este método tiene la ventaja de ejecutar lo que quiera en el th e servidor remoto. Sin embargo, dudo que esto funcione con Github.

3

Debe buscar la rama remota y luego interactuar con ella. git fetch pasará la rama remota al FETCH_HEAD de su repositorio local, pero no a su directorio de trabajo.

git log FETCH_HEAD --decorate=full le permitirá ver dónde está su HEAD en comparación con refs/origin/HEAD, que es la rama remota.

git whatchanged FETCH_HEAD --decorate=full es lo mismo que arriba, pero también muestra los archivos que han cambiado.

git diff HEAD FETCH_HEAD diferenciaciones entre la cabeza de su repositorio y la cabeza de la rama remota que acaba arreó

git diff --stat HEAD FETCH_HEAD una vista previa resumen de los cambios, tal como lo haría ver durante la fusión y en la parte inferior de un tirón Git.

Tenga en cuenta que si desea obtener los cambios obtenidos, simplemente haga un git merge FETCH_HEAD.(Cuando git pull que sólo está haciendo esencialmente una zona de alcance a continuación, una fusión)

+1

Esta respuesta es inútil de la pregunta real, pero le doy un voto positivo de todos modos ya que resolvió el problema que quería resolver cuando duckduckgoing para "git log remote branch" :-) – tobixen

1

he encontrado dos formas de hacer esto con GitHub:

  1. utilizar la API de Web para consultar la información de registro (no trivial, pero factible)
  2. uso "svn log", ya que ahora GitHub emula parcialmente un servidor sVN en los repositorios Git
Cuestiones relacionadas