用python做網(wǎng)站開發(fā)的課程嘉興seo
問題原因:
? ? ? ? 其實也不是最近,就是之前就碰到過這個問題,那就是我正在新分支開發(fā)新功能,開發(fā)程度還沒有到可以commit的程度,我不想提交(因為有些功能沒有完全實現(xiàn),而且沒有自測的話很容易有問題,提交了之后看修改過的代碼也不方便,而不提交又不能切換分支。),這時候生產(chǎn)環(huán)境有緊急問題需要改bug,那我要怎么在不提交代碼的情況下切換分支去修改bug呢?(我以前的做法就是直接在新功能的分支上提交一下代碼,然后再切到有bug的分支上,其實這樣也沒啥,就是對自己要求高了之后,感覺不應(yīng)該在提交記錄中存在一次這樣的記錄)因此git stash應(yīng)運而生,就可以解決這個情況。
介紹:
git stash :
它會保存當(dāng)前工作進度,會把暫存區(qū)和工作區(qū)的改動保存到一個未完結(jié)變更的堆棧中;
執(zhí)行完這個命令后,再運行?git status
命令,就會發(fā)現(xiàn)當(dāng)前是一個干凈的工作區(qū),沒有任何改動。
備注:git stash并不會把代碼提交到遠程倉庫,如果需要添加備注說明可以用下面這個:
git stash save '備注'
相關(guān)命令:
//查看所有隱藏, 每一行的冒號前面的字符串就是標(biāo)識此隱藏的idgit stash list // 重新顯示標(biāo)識為 id 的隱藏(list中不會刪掉記錄)git stash apply + id//git apply恢復(fù)隱藏后, 需要手動刪除 list 列表中的記錄git stash drop + id//恢復(fù)最新的進度到工作區(qū) (list中會刪掉恢復(fù)id的那一條記錄)git stash pop //恢復(fù)指定的進度到工作區(qū)git stash pop + id
一般使用經(jīng)驗:
(1)一般的話其實只會有一條記錄即可,但是還是應(yīng)該先用git stash list看一下stash的記錄
避免出錯。例如有以下四條記錄:
如果想回到3版本,就使用:
git stash apply 3
這時候其他版本不想要了,就刪掉即可,3版本恢復(fù)之后也可以把list中的3也刪除掉。
git stash drop 0
git stash drop 1
git stash drop 2
(2)所以一般的流程就是:先git stash一下,然后git branch 查看分支,再然后git checkout去切換分支,然后改bug,完了提交。最后切換來新功能分支,在使用git stash list 先查看,接著git stash apply (+id)(或者git stash pop(+id))去恢復(fù)代碼即可。
(3)注意git stash apply和git stash pop的區(qū)別(這個看個人習(xí)慣,其實我們項目中放在stash 里面估計也就一條記錄,所以恢復(fù)完直接刪掉也行
(4)補充一下:如果list中的記錄比較多,可以使用git stash clear一鍵全清除,但是要謹(jǐn)慎哦。
總結(jié):
? ? ? ? 現(xiàn)在可以去test一下,敲一遍就明白區(qū)別了。