git代碼'檢出'

git代碼'檢出'

git采用分布式無中心化設計昭抒,因此檢出代碼的同時需要將完整的倉庫下載到本地徒欣。所以不像SVN一樣可以直接用checkout來直接檢出服務端的版本庫(即開發(fā)代碼)到本地工作目錄,在git中應該使用git clone將遠程倉庫檢出到本地泳桦。

git clone 流程

git clone 是一個復合高級指令汤徽,內部會執(zhí)行git init(在本地初始化git repository,即創(chuàng)建.git隱藏目錄)灸撰、git pull(將遠程倉庫的幾乎所有拷貝到本地)谒府、git remote add(將遠程倉庫的URL連接添加到記錄),以及git checkout(將默認的倉庫的master分支代碼拷貝到本地工作目錄working directory和緩沖區(qū)index)浮毯。

git clone流程.jpg

拓展內容-git pull

要注意git pull與git fetch的區(qū)別完疫,由下圖可以看出git pull是git fetch和git merge的復合指令,由此可以得出git fetch只負責將文件檢出到本地债蓝,并不會與當前工作區(qū)的代碼合并壳鹤。

git pull流程.jpg

拓展內容-git checkout系列之checkout的底層機制

通過“git的日常操作流workflow”和“git的代碼‘檢出’”我們大致了解了如何從倉庫中將git所管理的各種文件拉取到本地。

這里著重說下checkout饰迹,尤其是當需要同時管理多個分支芳誓,在多個分支之間切換時;甚至是當需要與同一個源的其他倉庫進行合并時(即我們通常所說的多人協(xié)同開發(fā))蹦锋。

checkout所做的事情就是將命令行對應的版本庫中或者index中的文件拷貝出來兆沙,粘貼到working directory(如果參數(shù)是版本庫也會拷貝到index區(qū)域)區(qū)域中

git checkout簡單本地切換示意圖.jpg

當git checkout后面跟的是一個本地(或遠程)分支、或者HEAD(即默認的當前分支)時莉掂,實際的操作如上圖所示:

  • 會將本地的working directoryindex 的內容設置成與制定的分支(你checkout選擇的分支)的最近一次提交內容相一致葛圃,即目標分支中存在的任何文件都會被拷貝到index和working directory中

  • 同時也意味著屬于現(xiàn)有分支憎妙,但目標分支不存在的文件库正,將會自動從index和working directory中暫時移除

例如:我創(chuàng)建了一個test.txt文件,我從默認分支(master)切換到新建分支
BranchB厘唾,然后一系列add褥符,commit之后,再切回分支master抚垃,test.txt文件會
自己消失(已經在working directory移除)

  • 兩個分支提交都存在的文件保持不變喷楣。

拓展內容-git checkout系列之checkout多分支維護

  • 新建的文件在working directory的中屬于狀態(tài)untracked,不會影響分支的切換(不論你怎么切換分支鹤树,新建的文件都不會‘暫時移除’)铣焊。

  • 新建的文件在某一分支上 git add之后,但并未commit罕伯,也不會影響分支切換曲伊。

  • 新建的文件在當前分支commit之后,如果有修改追他,但沒有再一次commit坟募,那么此時切換另一分支會報錯

(因為新建的文件在當前分支commit的時候就算屬于當前分支了岛蚤,在你修改之后但沒commit,卻要切換分支懈糯,那么git本來是準備遵循‘移除涤妒,屬于現(xiàn)有分支,但目標分支不存在的文件’赚哗,但發(fā)現(xiàn)你的文件修改之后未提交届腐,還處于臨時狀態(tài),如果移除了蜂奸,會導致本地修改丟失犁苏,故報錯)

拓展內容-git checkout系列之‘錯誤的dirty狀態(tài)’

至此我們清楚了checkout是如何完成分支切換的,以及什么情況下才能切換扩所。這也就是官方所說的只有在非“dirty”狀態(tài)下才能自由執(zhí)行checkout指令围详。

因此當你遇到這樣的狀況,你不想/不能祖屏,提交你正在進行中的工作助赞,但又不得不切換到其他分支,去完成那個分支上的任務或者工作袁勺,那么你就可以這樣做:

  1. 儲藏你的當前修改 stash

  2. 乘搭‘時光機’回到最近的版本 reset -hrad HEAD

  3. 切換分支 checkout

這里就不得不提前拓展以下幾個個命令:

git stash 和git stash apply:將當前工作儲藏and重新應用你儲藏好的修改

git stash list:查看現(xiàn)有的所有儲藏

git stash drop 移除某個儲藏的工作

本章完

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末雹食,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子期丰,更是在濱河造成了極大的恐慌群叶,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件钝荡,死亡現(xiàn)場離奇詭異街立,居然都是意外死亡,警方通過查閱死者的電腦和手機埠通,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進店門赎离,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人端辱,你說我怎么就攤上這事梁剔。” “怎么了舞蔽?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵荣病,是天一觀的道長。 經常有香客問我喷鸽,道長众雷,這世上最難降的妖魔是什么灸拍? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任做祝,我火速辦了婚禮砾省,結果婚禮上,老公的妹妹穿的比我還像新娘混槐。我一直安慰自己编兄,他們只是感情好,可當我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布声登。 她就那樣靜靜地躺著狠鸳,像睡著了一般。 火紅的嫁衣襯著肌膚如雪悯嗓。 梳的紋絲不亂的頭發(fā)上件舵,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天,我揣著相機與錄音脯厨,去河邊找鬼铅祸。 笑死,一個胖子當著我的面吹牛合武,可吹牛的內容都是我干的临梗。 我是一名探鬼主播,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼稼跳,長吁一口氣:“原來是場噩夢啊……” “哼盟庞!你這毒婦竟也來了?” 一聲冷哼從身側響起汤善,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤什猖,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后红淡,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體卸伞,經...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年锉屈,在試婚紗的時候發(fā)現(xiàn)自己被綠了荤傲。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡颈渊,死狀恐怖遂黍,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情俊嗽,我是刑警寧澤雾家,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站绍豁,受9級特大地震影響芯咧,放射性物質發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一敬飒、第九天 我趴在偏房一處隱蔽的房頂上張望邪铲。 院中可真熱鬧,春花似錦无拗、人聲如沸带到。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽揽惹。三九已至,卻和暖如春四康,著一層夾襖步出監(jiān)牢的瞬間搪搏,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工闪金, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留慕嚷,地道東北人。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓毕泌,卻偏偏與公主長得像喝检,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子撼泛,可洞房花燭夜當晚...
    茶點故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內容

  • git常用命令 GIT常用命令備忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章閱讀 8,458評論 1 26
  • 最近看到一句寫的很好的話挠说,好的皮囊千篇一律,但是特別的靈魂在萬里挑一愿题。有看到一小段視頻损俭,懂得了要把握好自己的獨特之...
    未0閱讀 163評論 0 0
  • ps:為何使用zsh而不適用默認的bash?1杆兵、忽略大小寫;2仔夺、高亮顯示琐脏;3、簡單易用缸兔; 一日裙、自動安裝命令(1-2...
    Dev_Mob閱讀 4,156評論 0 1
  • 今日為徒兒們開講納蘭的《于中好》(獨背殘陽上小樓,誰家玉笛韻偏幽惰蜜。一行白雁遙天暮昂拂,幾點黃花滿地秋。驚節(jié)序格侯,嘆沉浮鼻听,...
    斷腸紅2817閱讀 617評論 1 2