Ручной патч 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, либо в способе сохранения файлов.

Я практически нахожусь в своем уме, пытаясь выяснить, что пошло не так, но у меня нет технических знаний, чтобы даже начать выяснять. Даже мой местный "мерзавец", который предложил такие вещи, как шестнадцатеричная проверка, не смог помочь и отправил мне по электронной почте отчет об ошибке, который пока ничего не дал. Кто-нибудь знает, почему я не могу сделать ручной патч?

0 ответов

Другие вопросы по тегам