6.git stash改善工作流程

前瞻

當(dāng)使用一個(gè)分支(如:feature/new-design)進(jìn)行正常開發(fā)時(shí),但是源代碼出現(xiàn)一個(gè)緊急bug需要及時(shí)處理,但是此分支還沒完成,又需要使用master分支進(jìn)行bug處理,所以我們需要用到了git stash

命令

git stash #保存當(dāng)前進(jìn)度
git stash save "message" #保存當(dāng)前修改狀態(tài),加上注釋信息
git stash list #列出所有的曾經(jīng)的stash
git stash pop #恢復(fù)最新的進(jìn)度到工作區(qū)。git默認(rèn)會(huì)把工作區(qū)和暫存區(qū)的改動(dòng)都恢復(fù)到工作區(qū)。會(huì)刪除當(dāng)前進(jìn)度!!!
git stash pop --index #恢復(fù)最新的進(jìn)度到工作區(qū)和暫存區(qū)。(嘗試將原來暫存區(qū)的改動(dòng)還恢復(fù)到暫存區(qū))
git stash pop stash@{1} #恢復(fù)指定的進(jìn)度到工作區(qū)。stash_id是通過git stash list命令得到的
git stash apply <stash_id> #恢復(fù)指定的進(jìn)度到工作區(qū)。和git stash pop一樣只是不刪除恢復(fù)的進(jìn)度
git stash clear #刪除所有存儲(chǔ)的進(jìn)度

本例使用laravel項(xiàng)目為例

  • 模擬環(huán)境
    在laravel項(xiàng)目文件中打開一個(gè)終端(我目前用的是windows,要是linux,cd進(jìn)入該項(xiàng)目文件夾),切換一個(gè)分支feature/new-design,運(yùn)行php artisan make:controller ReportsController生成一個(gè)Reports控制器,然后在route.php文件中添加一個(gè)路由(隨便寫如:Route::resource('reports', 'ReportsController');),此時(shí)我發(fā)現(xiàn)項(xiàng)目有個(gè)錯(cuò)誤需要更改
  • git stash將feature/new-design分支編寫的內(nèi)容拿出來,然后git checkout master切換到master分支,此時(shí)git status將會(huì)沒有內(nèi)容提交。
  • 在master分支更改好bug,然后提交之后,切換到feature/new-design分支
  • git stash list查看stash記錄,運(yùn)行git stash apply(可以是git stash apply [stash id(stash@{0})])回到某個(gè)原點(diǎn),此時(shí)再次git status看到的就是之前git stash前的內(nèi)容
  • 在此分支編輯完之后提交合并即可完成,達(dá)到目的,下面是我的簡單流程





最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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