【转】git checkout 移動 HEAD 指標
原文: https://w3c.hexschool.com/git/9a164fbe
----------------
在我們正式進入到分支 (branch) 章節時,我們得先了解 HEAD
的觀念,如果你先了解它,接下來講解分支時,會理解得更好。
什麼是 HEAD?
HEAD
就是你目前指向的版本狀態,而 HEAD
可以選擇它指向到
- 分支 (branch)
- commit 版本
像是下圖,便是我們用 git init
新增本地數據庫後,新增了 3 個 commit。
在預設狀態時,master
就是我們的預設分支名稱,你可想像有條分支串起好幾個 commit。而此時的 HEAD
,他是跟著 master
向前推進的。
如果我想看最初的版本?
此時 HEAD
就會派上用場了,我們必須透過他對到我們指定 commit 版。此時我們必須先知道該 commit 的 SHA-1 編號,可以用 git log
查詢。
在每個 commit 旁邊的亂數就是 SHA-1
值,可以取前幾碼來準備切換,像我想回到第一個版本,那就是下圖白框處。指令則是
git checkout 1849273<指定 commit SHA-1>
切換後,你就可以看到自己的工作目錄,彷彿用了時光機,回到以前你指定的開發歷史狀態。
而此時的 HEAD
的位置就會被指定到第一個 commit 紀錄上,如下圖。
假使我們用 sourtree 查看,你也會發現 HEAD
的變化。
想再切換到最新狀態的話呢?
你可以使用此指令:
git checkout master
也就是讓 HEAD
再綁定回 master
的分支即可,如下圖。
接下來當你又新增一個 commit 時,因為 HEAD
跟著 master分支
,所以兩個就會自動推進。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
2019-05-10 go包中的init() 函数
2018-05-10 【转】docker安装PostgreSQL
2017-05-10 javascript 时间格式(很方便的原生函数)
2016-05-10 git 以及 github 使用系列