Ho 2 repository locali git che puntano entrambi allo stesso repository remoto.
In un repository git, se lo faccio git format-patch 1
, come posso applicare quella patch all'altro repository?
Ho 2 repository locali git che puntano entrambi allo stesso repository remoto.
In un repository git, se lo faccio git format-patch 1
, come posso applicare quella patch all'altro repository?
Risposte:
Nota: per prima cosa puoi vedere in anteprima cosa farà la tua patch:
Prima le statistiche:
git apply --stat a_file.patch
Quindi una corsa a secco per rilevare errori:
git apply --check a_file.patch
Infine, è possibile utilizzare git am
per applicare la patch come commit: consente di firmare una patch applicata.
Questo può essere utile per riferimento futuro.
git am --signoff < a_file.patch
Vedi un esempio in questo articolo :
Nel tuo registro git, troverai che i messaggi di commit contengono un tag "Sign-off-by". Questo tag verrà letto da Github e altri per fornire informazioni utili su come il commit è finito nel codice.
git am < somepatch.patch
restituisce "fatale: nome identificativo vuoto (per <>) non consentito". Qualcuno può spiegarmi perché?
Author
intestazioni nella patch, e / o non l'hai fatto git config user.{name,email}
.
git apply --check
dice patch does not apply
, e git apply -3
dice repository lacks the necessary blob to fall back on 3-way merge.
In parole povere, commettere un rebasing è una tale brezza; ma come fanno le persone a rimodellare le loro patch in aggiunta al codice aggiornato?
git apply name-of-file.patch
Oppure, se lo stai prendendo a calci nella vecchia scuola:
cd /path/to/other/repository
patch -p1 < 0001-whatever.patch
Per prima cosa dovresti prendere nota della differenza tra git am
egit apply
Quando si utilizza, git am
di solito si desidera applicare molte patch. Quindi dovrebbe usare:
git am *.patch
o semplicemente:
git am
Git troverà automaticamente le patch e le applicherà in ordine ;-)
UPD
Qui puoi trovare come generare tali patch
git apply
.. e in --reverse
:-) 👍
Se vuoi applicarlo come commit , usa git am .
Se si utilizza un IDE JetBrains (come IntelliJ IDEA, Android Studio, PyCharm), è possibile trascinare il file della patch e rilasciarlo all'interno dell'IDE e verrà visualizzata una finestra di dialogo che mostra il contenuto della patch. Tutto quello che devi fare ora è fare clic su "Applica patch" e verrà creato un commit.
È possibile utilizzare il cmd indicato di seguito
git apply fileName.patch