head:頭指標,是當前工作區的基礎版本
看到當前處於的分支:git branch -v
分離頭指標:git checkout 4902dc3^
處於分離頭指標狀態,可以檢查、測試和提交,而不影響任何分支。通過執行另外的乙個checkout檢出指令會丟棄在此狀態下的修改和提交
挽救分離頭提針
git branch -v
git merge acc2f69
深入了解git checkout命令
git checkout:是git最常用的命令,但也是乙個很危險的命令,因為這條命令會重寫工作區
1、git checkout [-q] [--]
可選 的如果省略則從暫存區(index)進行檢出
重置:一般用於重置暫存區(除非使用--hard引數)
檢出:主要用於覆蓋工作區
不會改變head頭指標,主要用於指定版本的檔案覆蓋工作區中對應的檔案。
如果省略,則會用暫存區的檔案覆蓋工作區的檔案,
否則用提定提交中的檔案覆蓋暫存區和工作區中對應的檔案。
2、git checkout [
]會改主head頭指標,
引數寫件
。是因為只有head切換到乙個分支才可以對提交進行跟蹤,否則會進入「分離頭指標」的狀態。「在分離頭指標」狀態下的提交不能被引用關聯到,從而可能丟失
3、git checkout [-m] [[-b|--orphan] ]
建立和切換到新的分支(),新的分支從提定的提交開始建立
檢出branch分支,完成1,2,3
1、更新head指向branch分支
2、用branch指向的樹更新暫存區和工作區
git checkout git checkout head
彙總顯示工作區、暫存區與head的差異
git checkout --filename
用暫存區中filename檔案來覆蓋工作區的filename檔案。相當於取消自上次執行git add filename以來(如果執行過)的本地修改
git checkout branch --filename
維持head的指向不變。用branch所指向的提交中的filename替換暫存區和工作區中相應的檔案
注意:會將暫存區和工作區中的filename檔案直接覆蓋
git checkout -- . git checkout .
注意:git checkout 命令後的引數為乙個點(「.") 這條命令最危險 會取消所有本地的修改(相對於暫存區)。相當於用暫存區的所有檔案直接覆蓋本地檔案,不給使用者任何確認的機會
git物件(git權威指南筆記)
1 檢視日誌詳盡輸出 git log l pretty raw id型別 commit tree 目錄 blob 檔案 檢視id型別 git cat file t id 檢視物件內容 git cat file p id git cat file p 668bcec git cat file p a1...
git暫存區(git權威指南筆記)
1 檢視提交 commit 日誌 git log 看到每次提交的檔案變更統計 stat git log stat 精簡輸出日誌 pretty oneline git log pretty oneline 2 檢視檔案狀態 git status 精簡格式的狀態輸出 s git status s 3 g...
Git學習筆記(六) Git檢出
檢出命令 此命令會重寫工作區 該命令的實質就是修改head本身的指向,不會影響分支游標。當執行此命令時,head頭指標被更改了,由指向乙個引用 分支 變成了指向乙個提交id,分支 master 的指向沒有改變,仍舊指向原有的提交id 分離頭指標 狀態 指的是head頭指標指向了乙個具體的提交id 用...