7.3 Git Tools - Stashing and Cleaning

下載初始化倉(cāng)庫(kù)

$ git status
當(dāng)前位于test分支旋恼,并且修改啦兩個(gè)文件,一個(gè)已經(jīng)staged,還有一個(gè)沒有
$ git stash
stash命令把當(dāng)前`working directory`和`index`的內(nèi)容都存儲(chǔ)起來(lái)
$ git status
現(xiàn)在status命令查看蛾魄,`working directory`已經(jīng)沒有修改啦数尿,是干凈的蜜另。
$ git stash list
`stash list`命令就是列出已經(jīng)stash的內(nèi)容,輸出結(jié)果還包括啦stash時(shí)的分支和當(dāng)時(shí)所在commit的SHA-1值 如果有新的stash時(shí)货邓,會(huì)在老的列表上面新建,把現(xiàn)在的這個(gè)stash@{0}壓下去四濒,變成stash@{1}
$ git log --oneline --graph --decorate
分支結(jié)構(gòu)圖可知换况,`stash list`輸出結(jié)果中的確實(shí)是stash時(shí)所在分支所指向的commit的SHA-1值
$ git checkout master
切換到`master`分支

打開hello.txt职辨,作如上的修改
$ git stash apply
$ git stash apply stash@{0}
恢復(fù)stash的內(nèi)容,用上面的命令就行戈二,可以在apply后面聲明是哪一個(gè)stash舒裤, 不聲明,Git會(huì)默認(rèn)選擇最新的那個(gè)觉吭。 恢復(fù)stash并不一定要保持`working directory`干凈腾供, 也不一定要在同一個(gè)branch上(在test的stash可以恢復(fù)到master分支), 如果恢復(fù)時(shí)出現(xiàn)沖突鲜滩,git停止恢復(fù)伴鳖,提示沖突。 因?yàn)閟tash存儲(chǔ)啦對(duì)hello的修改徙硅,所以恢復(fù)時(shí)提示沖突黎侈,停止恢復(fù), 提示我們要先commit或者stash才可以繼續(xù)恢復(fù) 但是闷游,如果修改的是afternoon.txt文件(stash存儲(chǔ)中沒有對(duì)這個(gè)文件的修改)峻汉, 那么可以直接`git stash apply`完成恢復(fù),不會(huì)產(chǎn)生沖突
$ git add hello.txt
$ git stash apply
因?yàn)閟tash apply命令是把原來(lái)存儲(chǔ)的修改都恢復(fù)到`working dirctory`脐往, 所以可以先把當(dāng)前對(duì)hello.txt的修改添加到`Index`休吠, 然后在stash apply恢復(fù)
$ git checkout -- hello.txt morning.txt
$ git status
用checkout命令,把`working dirctory`中剛剛恢復(fù)的修改撤銷掉业簿,然后再查看status瘤礁,只有index里面還有hello的修改
$ git stash apply --index
這個(gè)命令恢復(fù)stash的內(nèi)容時(shí), 會(huì)把原來(lái)已經(jīng)staged的文件(就是在index中的文件)也恢復(fù)梅尤, 不加`--index`時(shí)柜思,會(huì)把所有存儲(chǔ)的操作都恢復(fù)到`working directory`, 因?yàn)閕ndex中有對(duì)hello的修改存在巷燥,所以恢復(fù)依然終止
$ git status
查看status赡盘,stash沒有恢復(fù),原來(lái)index中的修改也清楚啦缰揪,`working directory`的修改保留
$ git checkout -- hello.txt
$ git stash apply stash@{0} --index
撤銷`working directory`的hello.txt修改陨享,然后用加上`--index`的命令恢復(fù)stash,此時(shí)輸出結(jié)果可以看到钝腺,跟剛開始在test分支時(shí)的狀態(tài)是一樣的抛姑,修改的hello.txt添加到index,morning.txt的修改沒有添加
$ git stash list
$ git stash drop stash@{0}
用drop stash命令丟棄無(wú)用的stash
$ git status
$ git stash
此時(shí)master分支仍然保留著恢復(fù)時(shí)的狀態(tài)艳狐,再次用git stash存儲(chǔ)狀態(tài)
$ git stash list
$ git stash pop stash@{0}
$ git stash list
用`git stash pop`命令恢復(fù)stash后會(huì)立即從棧中刪除對(duì)應(yīng)的stash `git stash list`沒有輸出結(jié)果

Stash命令的一些其他參數(shù)的使用

$ git add hello.txt
$ git status -s
把hello.txt添加到index定硝,然后再?gòu)?fù)制一份hello.txt,名字是`hello (2).txt` 用git status -s查看狀態(tài)毫目,如上圖
$ git stash --keep-index --include-untracked
$ git stash --keep-index -u  //-u == --include-untracked
$ git status -s
參數(shù)`--keep-index`表示保留index里面的狀態(tài) `--include-untracked`表示包括沒有追蹤的文件(就是上面復(fù)制的hello (2).txt) 然后在用`status -s`查看蔬啡,只剩下index中的狀態(tài)啦
$ git checkout --f master
$ git status -s
`checkout --f master`撤銷掉所有更改诲侮,打開hello.txt文件,前面兩行添加(master1)(master2)最后兩行加上(master19)和(master20)
$ git stash --patch
y
n
`--patch`參數(shù)用于存儲(chǔ)部分的修改星爪,如圖浆西,對(duì)前面兩個(gè)修改進(jìn)行存儲(chǔ),不存儲(chǔ)后面兩個(gè)修改

打開hello.txt顽腾,可以看到近零,上面兩行的修改已經(jīng)存儲(chǔ)起來(lái)了,下面的兩行依然保留

如果stash已經(jīng)無(wú)法在當(dāng)前分支上恢復(fù)抄肖,可以嘗試從stash新建一個(gè)branch測(cè)試代碼

$ git checkout -f HEAD  //撤銷掉上面剩下的所有修改
$ git stash branch testchanges stash@{0}
`stash branch testchanges`命令將新建testchanges分支久信,checkout執(zhí)行stash存儲(chǔ)命令時(shí)所在的那個(gè)commit,然后把存儲(chǔ)的修改重新引用到那個(gè)commit上漓摩,testchanges分支指向那個(gè)commit

清除working dirctory里面的文件

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末裙士,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子管毙,更是在濱河造成了極大的恐慌腿椎,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件夭咬,死亡現(xiàn)場(chǎng)離奇詭異啃炸,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)卓舵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門南用,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人掏湾,你說(shuō)我怎么就攤上這事裹虫。” “怎么了融击?”我有些...
    開封第一講書人閱讀 164,704評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵筑公,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我砚嘴,道長(zhǎng)十酣,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,702評(píng)論 1 294
  • 正文 為了忘掉前任际长,我火速辦了婚禮,結(jié)果婚禮上兴泥,老公的妹妹穿的比我還像新娘工育。我一直安慰自己,他們只是感情好搓彻,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評(píng)論 6 392
  • 文/花漫 我一把揭開白布如绸。 她就那樣靜靜地躺著嘱朽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪怔接。 梳的紋絲不亂的頭發(fā)上搪泳,一...
    開封第一講書人閱讀 51,573評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音扼脐,去河邊找鬼岸军。 笑死,一個(gè)胖子當(dāng)著我的面吹牛瓦侮,可吹牛的內(nèi)容都是我干的艰赞。 我是一名探鬼主播,決...
    沈念sama閱讀 40,314評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼肚吏,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼方妖!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起罚攀,我...
    開封第一講書人閱讀 39,230評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤党觅,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后斋泄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體杯瞻,經(jīng)...
    沈念sama閱讀 45,680評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評(píng)論 3 336
  • 正文 我和宋清朗相戀三年是己,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了又兵。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,991評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡卒废,死狀恐怖沛厨,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情摔认,我是刑警寧澤逆皮,帶...
    沈念sama閱讀 35,706評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站参袱,受9級(jí)特大地震影響电谣,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜抹蚀,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評(píng)論 3 330
  • 文/蒙蒙 一剿牺、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧环壤,春花似錦晒来、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)荧降。三九已至,卻和暖如春攒读,著一層夾襖步出監(jiān)牢的瞬間朵诫,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工薄扁, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留剪返,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,158評(píng)論 3 370
  • 正文 我出身青樓泌辫,卻偏偏與公主長(zhǎng)得像随夸,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子震放,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,661評(píng)論 9 163
  • “結(jié)婚之后他經(jīng)常喝酒宾毒,喝到半夜才回來(lái)。每次都喝的醉醺醺的殿遂,把我從床上搖醒诈铛,嫌我不出去掙錢,也越來(lái)越不會(huì)收拾打扮墨礁,帶...
    我的心靈大白閱讀 743評(píng)論 0 0
  • 第二周采訪關(guān)鍵詞:“孩子” 闡述:最近群里很多朋友談到了孩子以及孩子與父母之間的關(guān)系問題幢竹,為了促進(jìn)對(duì)孩子的了解,本...
    avaziyi閱讀 194評(píng)論 0 0
  • 最近一直在開八歡樂頌,看了小妖精蛐蛐兒驶乾,我想不僅讓無(wú)數(shù)男人暗暗磨牙邑飒,蠢蠢欲動(dòng),也讓女人鄙視匪夷级乐,羨慕嫉妒恨疙咸。都說(shuō)得...
    callme小公舉閱讀 1,292評(píng)論 2 48
  • 健身任務(wù)(1/4) check. 前天在餐館打工的時(shí)候突然想到一句話。 幾十年如一日风科。 我聽過(guò)看到過(guò)這句話很多次撒轮,...
    Demo呆某人閱讀 2,508評(píng)論 7 5