Come applicare una patch git quando dato un numero di tiro
-
27-10-2019 - |
Domanda
Ho scaricato una versione tronco di una base di codice da Git, e ci sono errori di generazione. Aparently una patch è ora disponibile, e ho ricevuto una e-mail:
vedi https://github.com/JustinTulloss/zeromq.node/pull/47 per patch
Sono nuovo di git, quindi non sono molto sicuro di cosa fare con questo 'patch' in particolare, dal momento che l'aspetto della pagina più simile a un thread di discussione.
Qualcuno sa come posso ottenere / applicare questa patch al mio repository git clonato a livello locale?
Soluzione
Salva l'qualche patch. Se stai usando Linux È possibile usare ricciolo:
curl -L https://github.com/JustinTulloss/zeromq.node/pull/47.patch > /tmp/47.patch
Per applicare l'git apply
uso patch. È possibile vedere se il cerotto si applica in modo pulito con l'opzione check
. Passare alla directory git ed eseguire:
git apply --check /tmp/47.patch
Se si guarda come si desidera applicare la patch rimuovere l'opzione di controllo
git apply /tmp/47.patch
Altri suggerimenti
Basta aggiungere un .patch
alla fine per ottenere la patch:
https://github.com/JustinTulloss/zeromq.node/pull/47.patch
Si può fare qualcosa di simile di seguito:
$ git checkout master
$ curl http://github.com/JustinTulloss/zeromq.node/pull/47.patch | git am
$ git push origin master
La regola sembra recentemente cambiato.
In precedenza abbiamo preso un PR e aggiungere un .patch
alla fine per ottenere la patch
http://github.com/[group]/[project]/pull/30583.patch
Ma ora il link è di reindirizzamento (301) a
https://patch-diff.githubusercontent.com/raw/[group]/[project]/pull/30583.patch
Quindi, se si utilizza curl
, si potrebbe pipe con il comando git apply
per applicare una patch git dal Pull Request
curl https://patch-diff.githubusercontent.com/raw/[group]/[project]/pull/30583.patch | git apply
Se la patch non è giusto per voi ora, utilizzare il comando git apply -R
per eseguire il rollback la modifica.
Per consentire git scaricare richiesta di pull 47 e patch in mylocalbranch
a livello locale, eseguire:
git checkout -b mylocalbranch
git pull origin pull/47/head
Se la richiesta di pull non è sul repo origine, eseguire
git remote add patchremote https://github.com/JustinTulloss/zeromq.node
git pull patchremote pull/47/head
git fetch -q origin +refs/pull/47/merge:
git checkout -qf FETCH_HEAD