2012-04-17 27 views
9

Cómo recuperar/verificar el repositorio remoto sin crear localmente la rama remote?Git fetch/checkout sin crear control remoto?

Caso de uso: Tengo un informe en GitHub, alguien lo bifurcó y agregó una nueva función e inició la solicitud de extracción. No puedo fusionarlo automáticamente porque hay algunos problemas menores que me gustaría solucionar primero.

Actividad de una sola vez Nunca necesitaré este repositorio remoto, así que no quiero crear una rama local remote.

Básicamente me gustaría hacer:

  1. archivos de copia de repositorio remoto y volver a escribir mi propia (sin ningún tipo de información relacionada con git-).
  2. ver la diferencia con mi cabeza actual.
  3. soluciona algo y lo confirma.

¿Cómo hacer eso?

git checkout git://github.com/xxx/xxx.git no lo hace funciona en absoluto (con el error)

git fetch git://github.com/xxx/xxx.git obras, pero no actualiza nada

Respuesta

10

Desea utilizar FETCH_HEAD.

siempre que ejecute git fetch ... se crea una referencia mágica llamada FETCH_HEAD.

probar, por ejemplo:

git fetch git://github.com/xxx/xxx.git && git merge FETCH_HEAD 
+2

No es eso lo mismo que 'git git pull: // github.com/xxx/xxx.git'? –

5

Otro método puro (al menos en/desde Github) es ir a buscar así:

git fetch repo pull/7324/head:pr-7324 

Donde:

repo puntos al repositorio remoto , p.ej git://github.com/xxx/xxx.git.

pull/7324/head es la solicitud de extracción remota.

pr-7324 es la rama de solicitud de extracción local.

Luego puede usar la rama PR local para hacer lo que quiera con ella.

Fuente: adaptado de this discussion.

+0

El proceso de solicitud de extracción se discutió en: http: // stackoverflow.com/questions/6743514/how-can-i-fetch-an-unmerged-pull-request-for-a-branch-i-dont-own –

7

Para cualquier servidor Git:

git fetch git://host.com/path/to/repo.git remote-branch-name:local-branch-name 
git checkout local-branch-name 
Cuestiones relacionadas