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

分享

git stash

 灬木木的花灬 2015-09-22

 開(kāi)發(fā)人員常常遇到這種情況:花了幾天時(shí)間一直在做一個(gè)新功能,已經(jīng)改了差不多十幾個(gè)文件,突然有一個(gè)bug需要緊急解決,然后給一個(gè)build測(cè)試組。在Git問(wèn)世之前基本上靠手動(dòng)備份,費(fèi)時(shí)且容易出錯(cuò)。

git stash命令簡(jiǎn)而言之就是幫助開(kāi)發(fā)人員暫時(shí)擱置當(dāng)前已做的改動(dòng),倒退到改動(dòng)前的狀態(tài),進(jìn)行其他的必要操作(比如發(fā)布,或者解決一個(gè)bug,或者branch,等等),之后還可以重新載入之前擱置的改動(dòng),很cool吧?

首先,用git add把所有的改動(dòng)加到staging area。

git add .

接著用git stash把這些改動(dòng)擱置。

git stash

到這里,當(dāng)前工作平臺(tái)就回復(fù)到改動(dòng)之前了。該干嘛干嘛,此處省略1萬(wàn)字。

需要找回之前擱置的改動(dòng)繼續(xù)先前的工作了?

git stash apply 即可。

也可以用 git stash list 來(lái)查看所有的擱置版本(可能擱置了很多次,最好不要這樣,容易搞混)

在出現(xiàn)一個(gè)擱置棧的情況下,比如如果你想找回棧中的第2個(gè),可以用 git stash apply stash@{1}

如果想找回第1個(gè),可以用 git stash pop

如果想刪除一個(gè)stash,git stash drop <id>

刪除所有stash,git stash clear


轉(zhuǎn)載二:

我第一次用這個(gè)命令時(shí)被坑過(guò),經(jīng)過(guò)是這樣的:我發(fā)現(xiàn)有一個(gè)類(lèi)是多余的,想刪掉它又擔(dān)心以后需要查看它的代碼,想保存它但又不想增加一個(gè)臟的提交。這時(shí)我想到了git stash,于是那一天我執(zhí)行了下這個(gè)命令就回去睡覺(jué)了。 第二天我繼續(xù)在這個(gè)目錄里工作,coding了半天才發(fā)現(xiàn)前一天的修改都不見(jiàn)了,暫存區(qū)里也沒(méi)有任何昨天修改的紀(jì)錄。是我忘了保存了嗎?

相信git老手們?cè)缇涂闯鰡?wèn)題所在了,修改消失了并不是因?yàn)槲彝吮4?,而?code style="padding:2px 4px; font-family:Menlo,Monaco,'Courier New',monospace; font-size:12px; color:rgb(221,17,68); background-color:rgb(247,247,249); border:1px solid rgb(225,225,232)">git stash在保存完當(dāng)前工作目錄和暫存區(qū)以后,會(huì)用HEAD重置這兩者。因?yàn)槲易蛱斓男薷臎](méi)有提交,HEAD指向的是前天的版本,所以stash以后工作目錄和暫存區(qū)就會(huì)被前天的的版本所重置。

正確的做法應(yīng)該是在git stash后再執(zhí)行git stash apply,當(dāng)前的工作目錄就恢復(fù)回來(lái)了。

git stash apply相當(dāng)于利用過(guò)去貯藏(stashed)的工作目錄快照,恢復(fù)當(dāng)前的工作目錄。如果工作目錄在貯藏之后發(fā)生了變化,恢復(fù)時(shí)就會(huì)產(chǎn)生沖突(conflict),這種情況下git stash apply會(huì)對(duì)工作目錄進(jìn)行merge操作。

和merge一樣,git stash apply之前要保持當(dāng)前目錄是干凈的(沒(méi)有未提交的改變),否則會(huì)保錯(cuò):

error: Your local changes to the following files would be overwritten by merge: Please, commit your changes or stash them before you can merge.

git stash apply只能恢復(fù)工作目錄,如果想把暫存區(qū)也按照貯藏時(shí)的暫存區(qū)恢復(fù)的話,可以加上--index,如果暫存區(qū)恢復(fù)時(shí)發(fā)生沖突了會(huì)怎么辦呢?嘿嘿,它會(huì)直接報(bào)錯(cuò)不允許你這么做:


    本站是提供個(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)論公約

    類(lèi)似文章 更多