Ручной патч git checkout, который просто не будет применяться
Я относительный новичок в Git, но я изучал более продвинутые вещи, так как я работал над конкурсом игрового дизайна. В процессе объединения изменений между двумя ветвями я познакомился с git checkout --patch
, что бы сделать именно то, что мне нужно. Тем не менее, несмотря на то, что просто применяя гунки с y
или же n
будет работать, как и разделение, в любое время, когда я выберу ручное редактирование фрагмента с помощью e
Постоянно терпит неудачу. Взять, к примеру, этот патч:
# Manual hunk edit mode -- see bottom for a quick guide
@@ -102,12 +80,12 @@ enum Facing {
int stunTimer;
int m_health;
- bool m_softStun = true;
bool hitFlag;
bool jumpFlag;
SoundGroup contactSounds;
float movementInput;
+ float verticalInput;
[SerializeField]
public GameObject opponent;
# ---
# To remove '-' lines, make them ' ' lines (context).
# To remove '+' lines, delete them.
# Lines starting with # will be removed.
#
# If the patch applies cleanly, the edited hunk will immediately be
# marked for applying. If it does not apply cleanly, you will be given
# an opportunity to edit again. If all lines of the hunk are removed,
# then the edit is aborted and the hunk is left unchanged.
Это простой патч, проблему которого я мог бы решить путем разбиения, но я буду использовать его в качестве примера. Скажем, я пытаюсь сохранить оба m_softStun
bool, и verticalInput
переменные с плавающей точкой. Казалось бы, все, что мне нужно сделать, это:
# Manual hunk edit mode -- see bottom for a quick guide
@@ -102,12 +80,12 @@ enum Facing {
int stunTimer;
int m_health;
bool m_softStun = true;
bool hitFlag;
bool jumpFlag;
SoundGroup contactSounds;
float movementInput;
+ float verticalInput;
[SerializeField]
public GameObject opponent;
# ---
# To remove '-' lines, make them ' ' lines (context).
# To remove '+' lines, delete them.
# Lines starting with # will be removed.
#
# If the patch applies cleanly, the edited hunk will immediately be
# marked for applying. If it does not apply cleanly, you will be given
# an opportunity to edit again. If all lines of the hunk are removed,
# then the edit is aborted and the hunk is left unchanged.
Все, что я сделал, это удалил -
перед bool m_softStun
и, как сказали мне документы и другие ответы, добавьте пробел.
Однако, когда я пытаюсь применить этот патч, он возвращает мне ошибку:
error: patch failed: Assets/Scripts/Fighter.cs:23
error: Assets/Scripts/Fighter.cs: patch does not apply
Эта ошибка, или варианты с разными номерами строк, возвращалась мне через все следующие попытки исправить ее:
- Я использовал стандартный Windows 10 Notepad, Notepad++ и даже Vim
- Я проверил, чтобы убедиться, что в начале нет вкладки, которая использовалась вкладкой, даже углубляясь в шестнадцатеричный анализ Vim, чтобы убедиться в этом.
- Я пытался удалить и сохранить возврат каретки с концов линий
- Я пытался кодировать в ANSI и UTF-8 через Vim, Notepad и Notepad ++
- Я пытался вообще не редактировать патч, что все равно дает мне ошибку, из-за чего я подозреваю, что это либо ошибка в git, либо в способе сохранения файлов.
Я практически нахожусь в своем уме, пытаясь выяснить, что пошло не так, но у меня нет технических знаний, чтобы даже начать выяснять. Даже мой местный "мерзавец", который предложил такие вещи, как шестнадцатеричная проверка, не смог помочь и отправил мне по электронной почте отчет об ошибке, который пока ничего не дал. Кто-нибудь знает, почему я не могу сделать ручной патч?