Pracuję nad projektem opartym na WordPressie i chcę aktualizować mój projekt w każdej nowej wersji WP. W tym celu chcę wygenerować łatkę między dwoma zatwierdzeniami lub tagami.
Na przykład w moim repozytorium /www/WP
robię to:
$git patch-format com1..com2 --stdout > ~/patchs/mypatch.patch
Lub
$git patch-format tag1..tag2 --stdout > ~/patchs/mypatch.patch
/www/WP
git natif WordPress
/www/myproject
Mój projekt git oparty na WordPressie
Wydaje git apply
mi się, że linia poleceń nie działa, ponieważ jesteśmy w różnych repozytoriach.
Czy mogę wygenerować plik poprawki bez zatwierdzenia, tylko różnicę i zastosować go do innego repozytorium git?
Z góry dzięki.
$git diff -u tag1..tag2 > mypatch.patch
i$git apply --stat > mypatch.patch
czy mam0 files changed
jakieś inne sugestie? :)git apply
. Zaktualizowałem moją odpowiedź przykładem.git diff -p tag1 tag2 > my.patch
co działało dobrze.Only unified diff (-uNr) format is acceptable.
ale kiedy próbujęgit diff -uNr tag1..tag2 > mypatch.patch
, otrzymuję wiadomośćusage: git diff [<options>] [<commit> [<commit>]] [--] [<path>...]
git diff ...
+git apply ...
nie obsługuj poprawnie usuniętych / przeniesionych plików ... kiedygit format-patch ...
+git am ...
to zrobisz.Aby stworzyć łatkę na kilka zatwierdzeń, powinieneś użyć
format-patch
polecenia git, npSpowoduje to wyeksportowanie zatwierdzeń do pliku poprawki w formacie skrzynki pocztowej.
Aby wygenerować poprawkę dla ostatniego zatwierdzenia, uruchom:
Następnie w innym repozytorium zaaplikuj łatkę
am
poleceniem git npZobacz:
man git-format-patch
igit-am
.źródło
patch -p1
? sourceware.org/glibc/wiki/…Jako uzupełnienie, aby stworzyć łatkę tylko dla jednego konkretnego zatwierdzenia, użyj:
Po wygenerowaniu pliku poprawki upewnij się, że inne repozytorium wie, gdzie jest, gdy używasz
git am ${patch-name}
Przed dodaniem poprawki użyj,
git apply --check ${patch-name}
aby upewnić się, że nie ma konfliktu.źródło