日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Git學(xué)習(xí)筆記04--git checkout

 Kinetis 2014-01-14

檢出命令git checkoutgit最常用的命令之一,同時(shí)也是一個(gè)很危險(xiǎn)的命令,因?yàn)檫@條命令會(huì)重寫(xiě)工作區(qū)。檢出命令的用法如下:

用法一:git checkout [-q] [<commit>] [--] <paths>...

用法二:git checkout [<branch>]

用法三:git checkout [-m] [[-b]--orphan] <new_branch>] [<start_point>]

上面列出的第一種用法和第二種用法的區(qū)別在于,第一種用法在命令中包含路徑<paths>。為了避免路徑和引用(或者提交ID)同名而發(fā)生沖突,可以在<paths>前用兩個(gè)連續(xù)的短線(短號(hào))作為分隔。

第一種用法的<commit>是可選項(xiàng),如果省略則相當(dāng)于從暫存區(qū)(index)進(jìn)行檢出。這和上一章的重置命令大不相同:重置的默認(rèn)值是HEAD,而檢出的默認(rèn)值是暫存區(qū)。因此重置一般用于重置暫存區(qū)(除非使用--hard參數(shù),否則不會(huì)重置工作區(qū)),而檢出命令主要是覆蓋工作區(qū)(如果<commit>不省略,也會(huì)替換暫存區(qū)中相應(yīng)的文件)。

第一種用法(包含了路徑<paths>的用法)不會(huì)改變HEAD頭指針,主要是用于指定版本的文件覆蓋工作區(qū)中對(duì)應(yīng)的文件。如果省略<commit>,則會(huì)用暫存區(qū)的文件覆蓋工作區(qū)的文件,否則用指定提交中的文件覆蓋暫存區(qū)中和工作區(qū)中對(duì)應(yīng)的文件。

第二種用法(不使用路徑<paths>的用法)則會(huì)改變HEAD頭指針。之所以后面的參數(shù)會(huì)寫(xiě)作<branch>,是因?yàn)橹挥?/span>HEAD切換到一個(gè)分支才可以對(duì)提交進(jìn)行跟蹤,否則仍然會(huì)進(jìn)入“分離頭指針”的狀態(tài)。在“分離頭指針”狀態(tài)下的提交不能被引用關(guān)聯(lián)到,從而可能丟失。所以用法二最主要的作用就是切換到分支。如果省略<branch>則相當(dāng)于對(duì)工作區(qū)進(jìn)行狀態(tài)檢查。

第三種用法主要是創(chuàng)建和切換到新的分支(<new_branch>),新的分支從<start_point>指定的提交開(kāi)始創(chuàng)建。新分支和我們熟悉的master分支沒(méi)有什么實(shí)質(zhì)的不同,都是在refs/heads命名空間下的引用。

下圖所示的版本庫(kù)模型圖描述了git checkout實(shí)際完成的操作。

clip_image002

下面通過(guò)一些示例具體看一下檢出命令的不同用法。

$ git checkout branch

檢出branch分支。要完成圖中的三個(gè)步驟,更新HEAD以指向branch分支,以及用branch  指向的樹(shù)更新暫存區(qū)和工作區(qū)。

$ git checkout

匯總顯示工作區(qū)、暫存區(qū)與HEAD的差異。

$ git checkout HEAD

同上

$ git checkout -- filename

用暫存區(qū)中filename文件來(lái)覆蓋工作區(qū)中的filename文件。相當(dāng)于取消自上次執(zhí)行git add filename以來(lái)(如果執(zhí)行過(guò))的本地修改。

$ git checkout branch -- filename

維持HEAD的指向不變。用branch所指向的提交中filename替換暫存區(qū)和工作區(qū)中相   應(yīng)的文件。注意會(huì)將暫存區(qū)和工作區(qū)中的filename文件直接覆蓋。

$ git checkout -- . 或?qū)懽?git checkout .

注意git checkout 命令后的參數(shù)為一個(gè)點(diǎn)(“.”)。這條命令最危險(xiǎn)!會(huì)取消所有本地的  修改(相對(duì)于暫存區(qū))。相當(dāng)于用暫存區(qū)的所有文件直接覆蓋本地文件,不給用戶任何       確認(rèn)的機(jī)會(huì)!

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多