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 学习笔记 16的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ios 可以为空声明_iOS开发中使用O
- 下一篇: jsp 跳到servlet路径_请问如何