Можно ли выполнить git revert на коммите, но только в определенном каталоге? - PullRequest
1 голос
/ 11 октября 2019

Как упомянуто в заголовке, я хочу выполнить git revert для коммита, который внес некоторые нежелательные изменения, но только в определенную папку / каталог.

Ответы [ 2 ]

2 голосов
/ 11 октября 2019

С Git 2.23 (август 2019 г.) и новой командой git restore, а также : подпись pathspec :

git restore -s@~ -SW -- :path/to/folder/**

Длинная форма:

git restore --source @~ --staged --worktree -- :path/to/folder/**

Проверьте результат с помощью git status, затем подтвердите.


ОП добавляет:

Мне нужно будет сделать git reset изфайлы, в которых я не хочу вносить изменения, перед выполнением git checkout для них.
Выполнение только git checkout не работает, поскольку после git revert измененные файлы находятся в промежуточном каталоге.

Да, именно поэтому git checkout сбивает с толку и находится в процессе замены на:

Нет необходимости в возврате + сброс + извлечение: если вы хотите восстановить файлов ... используйте git restore.

2 голосов
/ 11 октября 2019

А как насчет:

  1. git revert --no-commit
  2. git оформить заказ, кроме вашей папки
  3. git commit

Редактировать: Дляgit >=2.23 см. Ответ VonC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...