Подтвердить что ты не робот

Git "вернуть" текущий каталог

В svn можно сделать svn revert ./*, в котором текущий каталог и ТОЛЬКО текущий каталог возвращается.

Что такое git эквивалент svn revert, в котором возвращается только текущий каталог?

Я знаю, что там git reset --hard, но он возвращает все, а не только текущий каталог.

Как бы я мог вернуть только текущий каталог в git?

4b9b3361

Ответ 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, с тем, который вы скопировали в ваш рабочий стол