@n199a
Java

Что за ошибка fatal: Dirty index: cannot apply patches в Git?

Есть 2 ветки (git_1 и git_2).
В ветке git_1:
1. Создаю файл 1.txt и добавляю в его 2 строки. Делаю коммит.
2. Открываю опять данный файл и добавляю ещё 2 строки. Делаю коммит.
3. Создаю файл в формате mbox:
git format-patch -1 <hash-commit>

Далее переключаюсь на ветку git_2 и копирую в данную ветку файл, полученный на 3 шаге. Ок, он скопировался. Проверяю его командой git apply --check <file> и проверка проходит без ошибок.
Сейчас пытаюсь применить патч командой git am <file>, а мне выдает ошибку:
$ git am 0001-Step-7.patch
fatal: Dirty index: cannot apply patches (dirty: 0001-Step-7.patch)


Почему?

Содержимое 0001-Step-7.patch:
From f9c90676efc6427d0c5db5ff9bb24e14e9e0cdb4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E2=80=9Dn199a=E2=80=9D?= <”n199a.info@gmail.com”>
Date: Tue, 21 Sep 2021 21:44:28 +0300
Subject: [PATCH] Step 7

---
 module_1/task_2/1.txt | 2 ++
 1 file changed, 2 insertions(+)
 create mode 100644 module_1/task_2/1.txt

diff --git a/module_1/task_2/1.txt b/module_1/task_2/1.txt
new file mode 100644
index 0000000..877d792
--- /dev/null
+++ b/module_1/task_2/1.txt
@@ -0,0 +1,2 @@
+Modify this line number 1 on step 7
+Modify this line number 2 on step 7
-- 
2.33.0.windows.2
  • Вопрос задан
  • 156 просмотров
Решения вопроса 1
@n199a Автор вопроса
Java
Решено.
Когда вы выполняете команду:
git format-patch -1 <hash>
Данная команда задаем имя будущему файлу исходя их строки, написааной в коммите. Если у вас в коммите будет комметарий с точками, то файл создадится наподобие "first_commit.1.word.patch" и из-за этих точек в имени файла вы не сможите полнить команду git am, будет возникать данная ошибка.
4 часа потратил на это
Поэтому задавайте принудительно имя файла:
git format-patch -1 <hash> --stdout > file_name.patch
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы