2012-04-17 13 views
9

Come recuperare/eseguire il checkout del repository remoto senza creare il ramo locale remote?Git fetch/checkout senza creare il telecomando?

Caso di utilizzo: Ho qualche repo su GitHub, qualcuno lo ha biforcato e ha aggiunto una nuova funzione e una richiesta di pull avviata. Non riesco a unirlo automaticamente perché ci sono alcuni problemi minori che vorrei risolvere prima.

È un'attività occasionale Non avrò mai bisogno di questo repository remoto, quindi non voglio creare il ramo locale remote.

Fondamentalmente vorrei fare:

  1. copiare i file da repository remoto e riscrivere la mia (senza alcuna informazione git-correlati).
  2. vedere la differenza con la mia testa attuale.
  3. correggere qualcosa e commetterlo.

Come fare?

git checkout git://github.com/xxx/xxx.git non lo fa lavora a tutti (con errore)

git fetch git://github.com/xxx/xxx.git opere, ma non aggiorna nulla

risposta

10

Si desidera utilizzare FETCH_HEAD.

ogni volta che si esegue git fetch ... viene creato un riferimento magico denominato FETCH_HEAD.

provate ad esempio:

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

non è che lo stesso come 'git pull git: // github.com/xxx/xxx.git'? –

5

altro metodo accurato (almeno sul/dal Github) sta raggiungendo così:

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

Dove:

repo punti al repo remoto , per esempio git://github.com/xxx/xxx.git.

pull/7324/head è la richiesta di pull remoto.

pr-7324 è il ramo di richiesta pull locale.

Quindi è possibile utilizzare il ramo PR locale per fare quello che vuoi con esso.

Sorgente: adattato da this discussion.

+0

Il controllo della richiesta di pull è stato discusso all'indirizzo: http: // stackoverflow.com/domande/6743514/how-can-i-fetch-un-unmerged-pull-request-for-a-branch-i-dont-own –

7

Per qualsiasi server Git:

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