Poniższy działał dla mnie.
Źródło: How to create and apply a patch with Git
pierwsze, przyjrzeć się, jakie zmiany w patch. Można to zrobić łatwo z git zastosować
git apply --stat fix_empty_poster.patch
pamiętać, że ta komenda NIE zastosować poprawkę, ale tylko pokazuje statystyki o tym, co zrobi. Po przejrzeniu pliku łatki za pomocą ulubionego edytora, możesz zobaczyć, jakie są faktyczne zmiany.
Następnie, interesuje Cię, jak kłopotliwa będzie łatka. Git pozwala przetestować poprawkę przed jej zastosowaniem.
git apply --check fix_empty_poster.patch
Jeśli nie otrzymuję żadnych błędów, plaster może być nałożona. W przeciwnym razie możesz zobaczyć, jakie kłopoty napotkasz.
Aby zastosować poprawkę, użyję polecenia git am zamiast git. Powodem tego jest to, że git am pozwala na podpisanie się za nałożoną łatką. Może to być przydatne do późniejszego wykorzystania.
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, łatki zostały zastosowane w sposób czysty, a twój oddział główny został zaktualizowany. Oczywiście, przeprowadź testy ponownie, aby się upewnić, że nic się nie zepsuło.
W zalogować git, przekonasz się, że komunikaty popełniają zawierać „Signed-off-by” tag. Ten znacznik zostanie odczytany przez Githuba i inne osoby, aby dostarczyć użytecznych informacji o tym, w jaki sposób zatwierdzenie zakończyło się w kodzie.
to nie działa tak dobrze! –
Przepraszamy, to była naprawdę specyficzna sytuacja. Proponuję zadać pytanie, jeśli masz problemy :( – drozzy
Ogólnie git-svn jest lepszym sposobem importowania (i wywozu) svn zobowiązuje do repozytorium git. Będzie ona zachować wiadomości i informacje o autorze popełnienia, oraz radzenia sobie z wieloma przypadki brzegowe który złamie daną odpowiedź tutaj. (oczywiście, ten skrypt może być bardziej odpowiednie dla danej sytuacji, czy istnieją zewnętrzne ograniczenia nie zostały omówione tutaj) – Rich