Просмотр определенного коммита с помощью Git Checkout
Еще одна функциональность, сохраненная git checkout
, - это возможность просмотра (checking out) определенного коммита. Это переводит вас в состояние "detached HEAD" (отсоединенной HEAD), позволяя вам изучить проект в этот момент истории. git switch
не обладает этой возможностью.
Сначала давайте найдем хеш коммита (commit hash) начального коммита (initial commit).
Убедитесь, что вы находитесь в каталоге проекта:
cd ~/project
Просмотрите историю коммитов:
git log --oneline
Вы увидите вывод, подобный этому, с хешами коммитов:
<commit_hash_development> (HEAD -> development) Initial commit
<commit_hash_main> (main, feature-branch) Initial commit
Обратите внимание, что хеши коммитов будут отличаться в вашей среде. Скопируйте хеш коммита для "Initial commit".
Теперь используйте git checkout
, за которым следует хеш коммита, чтобы просмотреть этот конкретный коммит. Замените <commit_hash>
фактическим скопированным вами хешем.
git checkout <commit_hash>
Вы увидите вывод, указывающий на то, что вы находитесь в состоянии detached HEAD:
Note: switching to '<commit_hash>'
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:
git switch -c <new-branch-name>
HEAD is now at <commit_hash> Initial commit
Теперь вы просматриваете проект таким, каким он был во время начального коммита. Чтобы вернуться к ветке, вы можете использовать git switch
или git checkout
, чтобы переключиться обратно на ветку, такую как development
или main
.
Давайте вернемся к ветке development
с помощью git switch
:
git switch development
Вы увидите вывод, подтверждающий переключение:
Switched to branch 'development'
Вы успешно использовали git checkout
для изучения конкретного коммита, а затем вернулись к ветке с помощью git switch
.