git checkout 命令詳解—— Git 學習筆記 16
git checkout
命令詳解
概覽
git checkout 這條命令的常用格式如下:
用法一
git checkout [<commit>] [--] <paths>
用於拿暫存區的檔案覆蓋工作區的檔案,或者用指定提交中的檔案覆蓋暫存區和工作區中對應的檔案。
用法二
git checkout <branch>
用於切換分支。
用法三
git checkout -b <new_branch> [<start_point>]
用於建立並切換分支。
詳細說明
1. git checkout [<commit>] [--] <paths>
第一種用法在命令中包含路徑 <paths>
。為了避免路徑<paths>
和引用(或者提交)<commit>
同名而衝突,可以在<paths>
前用兩個連續的短線減號作為分隔。
<commit>
是可選項,如果省略則相當於從暫存區(index)檢出。這和 git reset
重置命令(例如 git reset HEAD <file>
)大不相同:重置的預設值是 HEAD
,而檢出的預設值是暫存區。因此重置一般用於重置暫存區(除非使用--hard
引數,否則不重置工作區),而檢出命令主要是覆蓋工作區(如果<commit>
不省略,也會替換暫存區中相應的檔案)。
第一種用法(包含了路徑 <paths>
的用法)不會改變 HEAD
頭指標,主要是用於拿指定版本的檔案覆蓋工作區中對應的檔案。如果省略<commit>
,則會拿暫存區的檔案覆蓋工作區的檔案,否則用指定提交中的檔案覆蓋暫存區和工作區中對應的檔案。
2. git checkout <branch>
第二種用法(不使用路徑<paths>
的用法)則會改變 HEAD
頭指標。之所以後面的引數寫作<branch>
,是因為只有 HEAD
切換到一個分支才可以對提交進行跟蹤,否則仍然會進入“分離頭指標”(Detached HEAD)的狀態。在“分離頭指標”狀態下的提交不能被引用關聯到而可能會丟失。所以用法二最主要的作用就是切換分支。
3. git checkout -b <new_branch> [<start_point>]
-b
選項表示建立新分支。如果指定了 <start_point>
,那麼新的分支將指向<start_point>
,否則新的分支指向當前的 HEAD
. 新分支和我們熟悉的 master 分支並沒有什麼實質的不同,都是在refs/heads
名稱空間下的引用。第三種用法用於分支的建立並切換。
參考資料
《Git 權威指南》
相關文章
- git checkout命令詳解Git
- git checkout 命令詳解Git
- git reset 命令詳解(二)—— Git 學習筆記 08Git筆記
- git reset 命令詳解(一)—— Git 學習筆記 07Git筆記
- git checkout 和 git reset 的區別 —— Git 學習筆記 09Git筆記
- git checkout 命令Git
- Git命令學習筆記Git筆記
- git checkout 對工作目錄的影響 —— Git 學習筆記 21Git筆記
- git cherry-pick 詳解 —— Git 學習筆記 18Git筆記
- git常用命令-Git學習筆記Git筆記
- Git 學習之命令詳解Git
- git status 命令總結 —— Git 學習筆記 06Git筆記
- GIT學習筆記一git initGit筆記
- git學習筆記Git筆記
- Pro Git 學習筆記Git筆記
- Git的學習筆記Git筆記
- git學習筆記5Git筆記
- git學習筆記6Git筆記
- git學習筆記(一)Git筆記
- git學習筆記(二)Git筆記
- Git—學習筆記1Git筆記
- git學習筆記 1Git筆記
- git學習筆記1Git筆記
- Git 的特點—— Git 學習筆記 02Git筆記
- 取得 Git 倉庫 —— Git 學習筆記 04Git筆記
- git rebase(變基)—— Git 學習筆記 19Git筆記
- 【Java學習筆記(五十三)】之Git簡介,Git常用命令Java筆記Git
- Git極簡學習筆記Git筆記
- git入門學習筆記Git筆記
- Git進階學習筆記Git筆記
- git 和 vim 學習筆記Git筆記
- Git筆記-部分命令Git筆記
- git高階命令學習記錄Git
- git status命令詳解Git
- git init命令詳解Git
- git remote 命令詳解GitREM
- git archive命令詳解GitHive
- Git 命令大全,詳解!Git