Il sotto ha funzionato per me.
Fonte: How to create and apply a patch with Git
In primo luogo, dare un'occhiata a quali cambiamenti sono nella patch. Lo si può fare facilmente con git applicare
git apply --stat fix_empty_poster.patch
Nota che questo comando NON applicare la patch, ma si mostra solo le statistiche su ciò che farà. Dopo aver sbirciato nel file patch con il tuo editor preferito, puoi vedere quali sono le modifiche effettive.
Successivamente, sei interessato a quanto sia fastidiosa la patch. Git ti permette di testare la patch prima di applicarla.
git apply --check fix_empty_poster.patch
Se non si ottiene alcun errore, la patch può essere applicata in modo pulito. Altrimenti potresti vedere quali problemi incontrerai.
Per applicare la patch, userò git am invece di git apply. La ragione di ciò è che git am ti permette di firmare una patch applicata. Questo può essere utile per riferimento futuro.
git am --signoff < fix_empty_poster.patch
Applying: Added specs to test empty poster URL behaviour
Applying: Added poster URL as part of cli output
OK, le patch sono state applicate in modo pulito e il ramo principale è stato aggiornato. Naturalmente, esegui di nuovo i tuoi test per assicurarti che non si rompa nulla.
In git log, scoprirai che i messaggi di commit contengono un tag "Signed-off". Questo tag verrà letto da Github e altri per fornire informazioni utili su come il commit è finito nel codice.
fonte
2016-07-29 09:16:49
non ha funzionato così bene! –
Scusa, questa era una situazione molto specifica. Ti suggerisco di pubblicare una domanda in caso di problemi :( – drozzy
In generale, git-svn è un modo migliore di importare (ed esportare) svn commit in repository git. Manterrà il messaggio di commit e le informazioni sull'autore e far fronte a molte (ovviamente, questo script potrebbe essere più appropriato per la tua situazione se ci sono vincoli esterni che non hai discusso qui) – Rich