#git #github
#git #github
Вопрос:
Я кое-что сделал со своим репозиторием git, и я думаю, что копаю дыру глубже.
Прямо сейчас я просто хочу иметь возможность получить все мои текущие файлы в том состоянии, в котором они были, когда я в последний раз отправлял их на github. Однако у меня нет подключения к Интернету на этом компьютере. Итак, что мне делать? У меня есть git внутри, и git log
показывает, что коммит, который я хочу, начинается с c3e535f8cb.....
Я просто хочу вернуть весь мой каталог к этому коммиту. выполнимо ли это с помощью git?
прямо сейчас мне нечего фиксировать
git status
Шоу
# on branch master
# your branch is ahead of 'origin/master' by 3 commits
# nothing to commit (working directory clean)
Ответ №1:
Попробуйте следующее:
git reset --hard c3e535f8cb
Примечание: вы потеряете изменения в своем репозитории, индексе и рабочем каталоге, начиная с c3e535f8cb. При необходимости рассмотрите другие варианты --soft
--mixed
. но поскольку вам, похоже, нечего фиксировать (очистить wd и индексировать), вы можете сделать выше. Но вы потеряете коммиты. Используйте git reflog
, чтобы вернуть их обратно, а затем снова используйте git reset
для «сброса» к этим коммитам.
Комментарии:
1. в этой команде говорится,
HEAD is now at C3e5e5f ...
однако, когда я открываю свои файлы, они не совпадают с файлами, которые отображаются на github для этого коммита. хорошо, я получил один коммит до этого, и файлы изменены. Я предполагаю, что если при моем последнем переходе на github я изменил только один файл, а затем, если я это сделаюreset --hard
, он просто выдаст мне ЭТОТ файл .. вместо того, чтобы предоставить мне ВСЕ файлы, какими они были в последнем коммите.
Ответ №2:
Я настоятельно рекомендую вам выполнить пробный запуск с --soft
опцией, чтобы убедиться, что вы получите желаемые результаты.
Если вы не отправили новые изменения вверх по потоку, вы могли бы легко снова получить изменения вверх по потоку, а затем выполнить сброс, который подходит лучше.
Я надеюсь, что вы успешно справились с поставленными целями 🙂