Дополнительно
git: патч не применяется
У меня есть определенный патч под названием my_pcc_branch.patch.
Когда я пытаюсь применить его, я получаю следующее сообщение:
$ git apply --check my_pcc_branch.patch
warning: src/main/java/.../AbstractedPanel.java has type 100644, expected 100755
error: patch failed: src/main/java/.../AbstractedPanel.java:13
error: src/main/java/.../AbstractedPanel.java: patch does not apply
Что это значит?
Как я могу решить эту проблему?
240
8
Йоханнес Сикст из списка рассылки msysgit@googlegroups.com предложил использовать следующие аргументы командной строки:
Это решило мою проблему.
git apply --reject --whitespace=fix mychanges.patch
сработал для меня.Когда все остальное терпит неудачу, попробовать [
ГИТ применить
'параметр s--3 исхода
] (https://git-scm.com/docs/git-apply#git-apply---3way).в Git применить --3 исхода файл-заплатку.патч
Типичный случай неисправности относится как патча, так как он может, и оставляет вас с конфликтов на работе в ГИТ, однако, вы обычно делаете так. Вероятно, один шаг проще, чем альтернатива "отклонить".
Эта команда будет применять патч не разрешить его оставить плохие файлы
*.ПХВ
:Вы просто должны решить их. Однажды решил бежать:
Это происходит, когда вы смешиваете UNIX и Windows git-клиенты, потому что Windows не имеет понятия "x" бит, поэтому ваша проверка файла
rw-r--r--
(0644) под Windows "продвигается" уровнем msys POSIX какrwx-r-xr-x
(0755). git считает эту разницу в режиме практически такой же, как и текстовую разницу в файле, поэтому ваш патч не применяется напрямую. Я думаю, что ваш единственный хороший вариант здесь - установитьcore.filemode
вfalse
(используяgit-config
).Вот проблема msysgit с некоторой связанной информацией: http://code.google.com/p/msysgit/issues/detail?id=164 (перенаправлено на archive.org's 3 Dec 2013 copy)
Попробуйте использовать решение, предложенное здесь: https://www.drupal.org/node/1129120
патч -Р1 < пример.патч`
Это помогло мне .
В моем случае я был достаточно глуп, чтобы создать файл исправления неправильно, в первую очередь, на самом деле дифф-ное в ту сторону. Я в конечном итоге с точно таким же сообщения об ошибках.
Если вы'вновь на Мастер и филиал-имя `ГИТ дифф > филиал-имя.патч этот пытается удалить все дополнения, которые вы хотите, чтобы произошло и наоборот (что было невозможно для Git, чтобы сделать, поскольку, очевидно, никогда не делал, дополнений не может быть удален).
Поэтому убедитесь, что вы ходите на свою ветку и выполнить команду git дифф мастер > филиал-имя.патч`
Я нашел этой ссылке
Я понятия не имею, почему это работает, но я пробовал многие способы работы и это единственное, что работал для меня. Короче, выполните три команды ниже: