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

Почему git pull не возвращает каталоги, которые я удалил?

Я только начал изучать, как использовать git сегодня, хорошо развиваясь.

В качестве эксперимента я использовал push для загрузки двух каталогов (содержащих по два файла) и двух файлов в корневом каталоге. Это отлично работает.

Затем я удалил один из двух каталогов, которые я локально (но не на git). Когда я использую git status, он, похоже, знает об этом:

deleted: test/Testfile.as
deleted: test/Testile2.as

Но когда я использую git pull, чтобы вернуть мои файлы, они, похоже, не возвращаются в мою локальную папку. Я также пробовал git fetch.

Единственный способ, которым я, кажется, все вернуть - git clone, но это не кажется логичным, поскольку мне нужно локально удалить мой основной каталог, а затем снова клонировать его (или, альтернативно, указать новое местоположение для клонированные файлы).

Каким образом можно получить файлы и папки из github, которые были удалены локально?

4b9b3361

Ответ 1

git pull просто объединяет извлеченные коммиты в вашем рабочем каталоге и не восстанавливает ваш удаленный каталог (но может предупредить вас о конфликтах.)

Если вы удалили папки в своем рабочем каталоге, вам нужно сделать:

git checkout -- test

чтобы вернуть его.

Или вы можете сделать git reset --hard, чтобы полностью привести свой рабочий каталог в состояние HEAD.

Ответ 2

вы хотите вернуть свой репозиторий в предыдущую рабочую версию. это задание для git - reset.

git reset --hard

обязательно прочитайте это полезное объяснение git - reset

вы также можете проверить эти файлы, если хотите:

git checkout -- test/

Ответ 3

git pull будет сменяться. подумайте об этом, как о файле, который вы изменили. a git pull не заменяет содержимое файла копией пультов, если вы его модифицировали. даже если есть противоречивые изменения, тогда он просто предупреждает вас о быстром продвижении.

Если у вас есть репозиторий в состоянии, в котором удаление является единственным незафиксированным изменением, и вы хотите его отменить, выполните git reset head --hard

Или, если у вас есть другие изменения, которые вы хотите оставить на месте, сделайте git checkout -- test

Ответ 4

Помимо git pull и git checkout, git revert также поможет восстановить удаленные файлы

Ответ 5

git reset --hard <commit hash> означает, что HEAD будет указывать на конкретную фиксацию и любые фиксации, которые вы сделали после того, как хеш фиксации не будет доступен. Причина этого заключается в том, что вы указываете HEAD для разделения фиксации HASH. Если вы нажмете принудительно, вы потеряете все фиксации.

Примечание. Будьте внимательны при использовании команды git reset --hard в git.