git apply может применяться несколько раз, если строки не удалены
У меня есть следующий патч
diff --git a/.htaccess b/.htaccess
index 4298b10..aa3d50d 100644
--- a/.htaccess
+++ b/.htaccess
@@ -364,6 +364,15 @@
Require all denied
</IfVersion>
</Files>
+ <Files patches>
+ <IfVersion < 2.4>
+ order allow,deny
+ deny from all
+ </IfVersion>
+ <IfVersion >= 2.4>
+ Require all denied
+ </IfVersion>
+ </Files>
# For 404s and 403s that aren't handled by the application, show plain 404 response
ErrorDocument 404 /pub/errors/404.php
Когда я использую git apply 2-й раз, патч не перестает применяться, вместо этого он просто добавляет его в той же строке. Есть ли способ предотвратить это?
Также, когда я использую git apply -R, он удалит один из добавленных экземпляров.
1 ответ
Короткий ответ - нет: git apply
обрабатывает входящие изменения как патч и просто должен найти правильный контекст. Пока контекст продолжает совпадать - и в этом случае это происходит - патч продолжает применяться.
Это одна из причин, возможно, главная, чтобы избежать использования патчей. git cherry-pick
имеет больше информации для него и не будет повторно применять изменения.