Как вытащить отсутствующий файл обратно в мою ветку - PullRequest
33 голосов
/ 14 марта 2012

Я клонировал проект git в локальный репозиторий git.Затем я сделал что-то неприятное с одним из файлов, и в этой панике я физически удалил файл с диска (rm style.css), а также удалил его из git (git rm style.css).

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

root@debian:~/project.me# git status
# On branch dev
nothing to commit (working directory clean)

root@debian:~/project.me# git pull origin dev
Password for 'https://someone@github.com':
From https://github.com/somewhere/project.me
* branch            dev        -> FETCH_HEAD
Already up-to-date.

Что мне нужно сделать, чтобы сказать git, что я хочу загрузить оригинальный файл style.css обратно в мою ветку dev?

Ответы [ 4 ]

59 голосов
/ 14 марта 2012

Используйте git checkout.В вашем случае:

git checkout origin/master style.css

Эта команда обновит запрошенный файл из данной ветви (здесь удаленная ветвь origin/master).

Надеюсь, это поможет

42 голосов
/ 24 декабря 2015

Если вы хотите восстановить все недостающие файлы из локального репозитория

git checkout .

Предупреждение : Этот метод также восстанавливает все измененные файлы и удаляет все изменения

7 голосов
/ 25 декабря 2014

Перейдите в каталог style.css (может быть app / css /) с помощью консоли в противном случае будет ошибка pathspec.

затем выполните:

git checkout origin/master style.css

1 голос
/ 15 июля 2018

Я намеренно удалил некоторые файлы из клона --depth 1, и это вернуло основные и субмодульные файлы обратно.

git checkout . -f && git submodule update --checkout -f 
...