場景:
git checkout master 之后蠢棱,發(fā)現(xiàn)有一個 issue53 需要解決锌杀,于是又新建了一個分之 iss53, 解決 iss53 的過程中,突然有一個更緊急的bug需要修復泻仙,但是 iss53 已經(jīng)進行到一半糕再,如果有文件改動有沖突的話我們是無法 checkout 回 master 的,而我不想現(xiàn)在就提交 iss53 所做的修改玉转,我希望去修復那個更緊急的 bug 之后再來接著處理 iss53
解決:
在 iss53 分之下執(zhí)行命令:
git stash
簡單理解的話突想,就是把所做的改動隱藏起來,這樣我們就可以 checkout 回 master 分支了checkout 回 master 分支
git checkout master
新建一個 hotfix 分支用來解決這個緊急bug
git checkout -b hotfix
然后改這改那究抓,改完之后提交...再 checkout 回 master 分支猾担,合并 hotfix 分支
git checkout master
git merge hotfix
可選,刪除 hotfix 分支刺下,因為 master 分支已經(jīng)與 hotfix 分支一致
git branch -d hotfix
checkout 回 iss53 分支绑嘹,接著解決這個問題,但是第一步我們已經(jīng)將之前的改動隱藏起來了怠李,這里就需要把那些改動還原(將之前修改的部分重新應用)圾叼,然后接著進行
還原:git stash apply
默認應用最近的一次 stash
git stash list # 所有的 stash
git stash apply stash-name # 指定應用的stash
就這樣。
關于 git stash