Git вернуть все изменения, которые игнорируются Git diff -w

Когда я делаю

git diff -w file_name

Я вижу только добавленные строки, но когда я удаляю -w, я вижу много удаленных и повторно добавленных строк.

Я хочу изменить файл, чтобы отображать только те изменения, которые не игнорируются опцией -w.

Есть ли для этого команда?

Ответ 1

jupp0r был на правильном пути. Сначала cd в корень вашего репозитория. Тогда:

git commit -a -m 'Backup commit.'
git branch pre-patch
git reset --hard HEAD~
git diff --patch -w HEAD pre-patch > patch.diff
git apply patch.diff

Я не уверен, будет ли это работать для двоичных изменений. Если нет, вы можете передать их отдельно заранее. Если этот процесс выходит из строя, ваш код находится в ветке pre-patch.

Что это делает:

  • Создает фиксацию и ветку для сохранения полных изменений. Это также служит резервным копированием.
  • Возвращает шаг, прежде чем эти изменения будут сделаны.
  • Получает "diff -w" из старого кода в новый код, отформатированный как патч.
  • Применяет патч.

Примечание. Если вы уже совершили изменение и хотите его изменить, просто опустите первый шаг.

Ответ 2

Вы можете сделать

git diff --no-color > stage.diff && git apply -R stage.diff && git apply --whitespace=fix stage.diff && rm -f stage.diff

Если вы еще не сделали никаких изменений.