Git分支和指標
阿新 • • 發佈:2019-02-04
Git中的分支本質上是個指向commit物件的指標。
在當前commit點建立一個新的分支test
git branch test
建立了一個新的可變指標指向f30ab commit
Git 是如何知道你當前是在哪個分支上工作的
(1)Git儲存著一個名為HEAD的特別指標
(2)HEAD可以指向你正在工作中的本地分支的指標
(3)HEAD也可以指向一個單獨的commit點(分離頭指標)
(4)git中用來操作HEAD指標的命令是
git checkout
(5)檢視當前所在的分支
git branch
(6)切換分支
git checkout <分支名稱>
git reset 用於移動HEAD指標指向的commit點(如HEAD指標指向了分支,分支也會移動),但git reset 不會切換分支(注意和checkout的區別)
reset 的幾種,模式:
(1)--soft:快取區和工作目錄不受影響。reset後分支和HEAD指標移動到指定的commit,程式碼檔案內容和reset之前一樣,修改部分已加入到暫存區。通常用於重新提交。
(2)--mixed:(預設)工作目錄不受影響。reset後分支和HEAD指標移動到指定位置,程式碼檔案內容和reset之前一樣,修改部分未加入到暫存區。(需要重新執行git add)
(3)--hard:工作目錄,快取區均受影響。reset後分支和HEAD指標移動到指定commit,程式碼檔案內容回退到指定commit,工作空間為clean狀態。通常用於獲取指定版本的程式碼檔案。