git中checkout分離HEAD


之前對於git checkout的認識停留在可以執行以下操作:

git checkout 分支名  # 用於切換分支
git checkout -b 分支名 # 用於創建分支並切換

今天突然看到了一個git checkout 歷史標號,這個用法被稱為HEAD分離。一開始以為自己之前的筆記里有漏洞,開始懷疑起了自己。仔細查看了這個命令的用法后,才覺得自己對git的理解又加深了。

以下為自己的理解:

git實際上維護的是一串歷史記錄,每個歷史標號都是一條記錄的id,而不同的分支表示不同的指針,指向某一個歷史標號,沿着那個標號往前,可以查看所有的歷史記錄。而HEAD也是一個指針,只是我們經常情況下將其和分支指針指向同一個歷史記錄,而使用git checkout命令就是用來移動HEAD指針的。

再回到前面的問題,把HEAD指針移動到非分支指針指向的歷史節點,就可以實現HEAD的分離。什么時候進行這樣的操作比較好呢,鏈接:https://blog.csdn.net/yunfeng482/article/details/88260894 將其總結為以下幾種情況:

  1. 如果臨時想基於某個commit做變更,試試新方案是否可行,就可以采用分離頭指針的方式。測試后發現新方案不成熟,直接reset回其他分支即可,省去了建、刪分支的麻煩,git會忽略管理這個沒有分支commit。

  2. 進行到某個commit,試試新方案,為該commit建立新的branch,可以進行特性開發。

  3. 分離頭指針對應的commit,你如果認為有用需要保留,那就用新分支把它保留。

  4. 如果當下無master分支,可以在分離頭指針狀態下,git checkout -b master HEAD


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM