好好爱自己!

【转】git checkout 移動 HEAD 指標

 

原文: https://w3c.hexschool.com/git/9a164fbe

----------------

 

在我們正式進入到分支 (branch) 章節時,我們得先了解 HEAD 的觀念,如果你先了解它,接下來講解分支時,會理解得更好。

什麼是 HEAD?

HEAD 就是你目前指向的版本狀態,而 HEAD 可以選擇它指向到

  • 分支 (branch)
  • commit 版本

像是下圖,便是我們用 git init 新增本地數據庫後,新增了 3 個 commit。

在預設狀態時,master 就是我們的預設分支名稱,你可想像有條分支串起好幾個 commit。而此時的 HEAD,他是跟著 master 向前推進的。

images

如果我想看最初的版本?

此時 HEAD 就會派上用場了,我們必須透過他對到我們指定 commit 版。此時我們必須先知道該 commit 的 SHA-1 編號,可以用 git log 查詢。

images

在每個 commit 旁邊的亂數就是 SHA-1 值,可以取前幾碼來準備切換,像我想回到第一個版本,那就是下圖白框處。指令則是

git checkout 1849273<指定 commit SHA-1>

切換後,你就可以看到自己的工作目錄,彷彿用了時光機,回到以前你指定的開發歷史狀態。

而此時的 HEAD 的位置就會被指定到第一個 commit 紀錄上,如下圖。

images

假使我們用 sourtree 查看,你也會發現 HEAD 的變化。

images

想再切換到最新狀態的話呢?

你可以使用此指令:

git checkout master

也就是讓 HEAD 再綁定回 master 的分支即可,如下圖。

images

接下來當你又新增一個 commit 時,因為 HEAD 跟著 master分支,所以兩個就會自動推進。

images

posted @ 2022-05-10 23:00  立志做一个好的程序员  阅读(167)  评论(0编辑  收藏  举报

不断学习创作,与自己快乐相处