Ответ 1
TL; DR
Вы можете вернуть патч с помощью:
$ git apply -R <patch>
Вы можете создать патч либо одним из следующих:
Это приведет к созданию патча из diff
$ git diff --patch > 0001-some-modifications.patch
Если вы хотите создать патч только для фиксации HEAD:
$ git show --patch HEAD^ > 0001-some-modifications.patch
Вы можете создать патч для предыдущих 3 коммитов из HEAD:
$ git show --patch HEAD~3 > 0001-some-modifications.patch
Вы можете применить исправление:
$ git apply -- 0001-some-modifications.patch
Вы можете вернуть патч с помощью:
$ git apply -R <patch>
Когда вы создаете патч, это просто отличие от метаданных; файлы, номера строк добавляет/удаляет; что-то следующее:
commit 9dad147cbf16befecdef2e812c1249499bdef5ac
Author: My Name <[email protected]>
Date: Mon Dec 21 20:46:01 2015 +0000
Example commit message.
diff --git a/src/example.md b/src/example.md
new file mode 100644
index 0000000..ab73512
--- /dev/null
+++ b/src/example.md
@@ -0,0 +1,3 @@
+# Example document
+
+ Hello World
Поэтому, когда вы используете git apply
, вы в основном применяете изменения в соответствии с деревом.
Когда вы запустите git apply -R
git, вы просто сделаете противоположное патчу.