Git "вернуть" текущий каталог
В svn можно сделать svn revert ./*
, в котором текущий каталог и ТОЛЬКО текущий каталог возвращается.
Что такое git эквивалент svn revert
, в котором возвращается только текущий каталог?
Я знаю, что там git reset --hard
, но он возвращает все, а не только текущий каталог.
Как бы я мог вернуть только текущий каталог в git?
Ответы
Ответ 1
Как и @vcsjones, решение здесь git checkout
:
git checkout <refspec> -- path/to/directory # or path/to/file
где <refspec>
может, например, быть HEAD
, то есть текущий рабочий фиксатор. Обратите внимание, что это использование команды checkout
влияет на рабочее дерево, но не на индекс.
git revert
используется для "отмены фиксации", и этим не следует понимать, что коммит исчезает из дерева (он будет играть хаос с историей - если вы этого хотите, посмотрите git rebase -i
). Возвращенная фиксация состоит из применения в обратном порядке всех изменений от фиксации, заданных в качестве аргумента для дерева, и создания нового фиксации с изменениями (с сообщением о фиксации по умолчанию, которое вы можете изменить).
Ответ 2
Перейдите в папку, которую вы хотите вернуть, и сделайте следующее:
git checkout -- .
Подробнее в этом ответе:
fooobar.com/questions/11639/...
Ответ 3
Когда я был новичком git (и боялся терминала), я нашел самый простой способ:
- переключитесь на ветку, которую вы хотите вернуть в свой подкаталог, чтобы
- скопируйте подкаталог, который хотите вернуть на рабочий стол.
- вернитесь к своей ветке
- перепишите подкаталог, который вы хотите заменить в каталоге git, с тем, который вы скопировали в
ваш рабочий стол