開發(fā)人員常常遇到這種情況:花了幾天時間一直在做一個新功能,已經(jīng)改了差不多十幾個文件,突然有一個bug需要緊急解決,然后給一個build測試組。在Git問世之前基本上靠手動備份,費時且容易出錯。 git stash命令簡而言之就是幫助開發(fā)人員暫時擱置當(dāng)前已做的改動,倒退到改動前的狀態(tài),進(jìn)行其他的必要操作(比如發(fā)布,或者解決一個bug,或者branch,等等),之后還可以重新載入之前擱置的改動,很cool吧? 首先,用git add把所有的改動加到staging area。
git add . 接著用git stash把這些改動擱置。 git stash 到這里,當(dāng)前工作平臺就回復(fù)到改動之前了。該干嘛干嘛,此處省略1萬字。 需要找回之前擱置的改動繼續(xù)先前的工作了? git stash apply 即可。 也可以用 git stash list 來查看所有的擱置版本(可能擱置了很多次,最好不要這樣,容易搞混) 在出現(xiàn)一個擱置棧的情況下,比如如果你想找回棧中的第2個,可以用 git stash apply stash@{1} 如果想找回第1個,可以用 git stash pop 如果想刪除一個stash,git stash drop <id> 刪除所有stash,git stash clear 轉(zhuǎn)載二:
我第一次用這個命令時被坑過,經(jīng)過是這樣的:我發(fā)現(xiàn)有一個類是多余的,想刪掉它又擔(dān)心以后需要查看它的代碼,想保存它但又不想增加一個臟的提交。這時我想到了
相信git老手們早就看出問題所在了,修改消失了并不是因為我忘了保存,而是
正確的做法應(yīng)該是在
和merge一樣,git stash apply之前要保持當(dāng)前目錄是干凈的(沒有未提交的改變),否則會保錯:
|
|