Как вернуться к самой последней версии в Git?
Я недавно перешел из SVN в Git и немного запутался в чем-то. Мне нужно было запустить предыдущую версию скрипта через отладчик, поэтому я сделал git checkout <previous version hash>
и сделал то, что мне нужно делать.
теперь я хочу вернуться к последней версии, но я не знаю хэш для него. Когда я набираю git log
, Я не вижу.
Как я могу это сделать? Кроме того, есть ли более простой способ изменить версии, чем набрав хэши - что-то вроде "вернуться к двум версиям" или " перейти к самому хронологически недавнему"?
9 ответов:
git checkout master
следует сделать трюк. Чтобы вернуться к двум версиям, вы могли бы сказать что-то вродеgit checkout HEAD~2
, но лучше создать временную ветку на основе на тот раз, такgit checkout -b temp_branch HEAD~2
при оформлении заказа на определенный коммит, git создает в отдельной ветке. Итак, если вы звоните:
$ git branch
вы увидите что-то вроде:
* (detached from 3i4j25) master other_branch
чтобы вернуться к главному филиалу, вам просто нужно снова проверить свою главную ветку:
$ git checkout master
эта команда автоматически удалит отсоединенную ветвь.
если
git checkout
не работает у вас, вероятно, есть измененные файлы, конфликтующие между ветвями. Чтобы предотвратить потерю кода git требует, чтобы вы имели дело с этими файлами. У вас есть три варианта:
припрятать свои модификации (вы можете поп их позже):
$ git stash
отбросить изменения сброс отсоединенной ветви:
$ git reset --hard
создайте новую ветку с предыдущими изменениями и зафиксируйте их:
$ git checkout -b my_new_branch $ git add my_file.ext $ git commit -m "My cool msg"
после этого вы можете вернуться к своей главной ветви (самая последняя версия):
$ git checkout master
Я только начинаю копать глубже в git, поэтому не уверен, правильно ли я понимаю, но я думаю, что правильный ответ на вопрос OP заключается в том, что вы можете запустить
git log --all
С такой спецификацией формата:git log --all --pretty=format:'%h: %s %d'
. Это помечает текущую извлеченную версию как(HEAD)
и вы можете просто захватить следующий из списка.кстати, добавьте такой псевдоним в свой
.gitconfig
С немного лучшим форматом, и вы можете запуститьgit hist --all
:hist = log --pretty=format:\"%h %ai | %s%d [%an]\" --graph
относительно версии, я нашел это post, но он говорит только о старых версиях, вероятно, нет ничего, чтобы ссылаться на более новые версии.
вы можете проверить, используя имена ветвей, для одной вещи.
Я знаю, что есть несколько способов переместить голову, но я оставлю это эксперту git, чтобы перечислить их.
Я просто хотел предложить
gitk --all
-- Я нашел его чрезвычайно полезным, когда начал с git.
вернуться к последней версии:
git checkout <branch-name>
например,
git checkout master
илиgit checkout dev
когда вы вернетесь к предыдущей версии
$ git checkout HEAD~2 Previous HEAD position was 363a8d7... Fixed a bug #32
вы можете увидеть свой журнал функций (хэш) с помощью этой команды даже в этой ситуации;
$ git log master --oneline -5 4b5f9c2 Fixed a bug #34 9820632 Fixed a bug #33 ...
master
можно заменить другим именем ветви.затем проверьте его, вы сможете вернуться к этой функции.
$ git checkout 4b5f9c2 HEAD is now at 4b5f9c2... Fixed a bug #34