Git эквивалентно проверке CVS или обновлению? - PullRequest
2 голосов
/ 08 июля 2011

ОК, поэтому я add ed и commit отправил весь подкаталог в git (пока не push, но все еще локально, в .git).

Затем я удалил весь подкаталог.(.git все еще там.)

Теперь я хочу вернуть его из git.Как мне это сделать?

Я пытался git checkout, но в нем перечислены только файлы удаления в этом подкаталоге.

Чего мне не хватает?

Ответы [ 2 ]

5 голосов
/ 08 июля 2011

Вы должны сделать git checkout subdirname


Вы также можете сделать git checkout -- subdirname

-- используется, чтобы избежать двусмысленности (например, если у вас есть ветвь, котораябыл назван subdirname и другими угловыми случаями.) Ниже приведен фрагмент от man для git checkout:

Если у вас есть неудачная ветка с именем hello.c, этот шаг будет запутан как инструкция дляпереключиться на эту ветку.Вместо этого вы должны написать:

$ git checkout -- hello.c

http://git -scm.com / docs / git-checkout

2 голосов
/ 08 июля 2011

Вам необходимо выполнить git checkout -- file_path, чтобы восстановить его. Обратите внимание, что синтаксис git checkout -- a_file_name позволяет вам извлекать не только удаленные файлы / каталоги, но и их исходную (последнюю принятую) форму перед любыми изменениями. Так что, если вы хотите отменить какие-либо локальные изменения в a_changed_file, git checkout -- a_changed_file будет работать и для этого варианта использования.

-- рекомендуется, чтобы избежать проблем с неправильными именами файлов, например, начинающимися с дефиса. Это также устраняет двусмысленность в случае ветки и файла с одинаковым именем.

Глава Git Community Book по отмене является хорошим справочником для связанных вопросов.

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