Git實戰手冊 三 stash解惑與妙用

2022-01-15 05:20:41 字數 1690 閱讀 9861

有空就來看看個人技術小站, 我一直都在

在實際專案開發中,總會遇到**寫到一半(沒法去打commit),去開啟新的分支 修復bug 或者 增加功能 的情況。如果不處理,未修改的**就會被帶入臨時建立的新的分支,沒寫完的** 和 要修復的**混合在一起,絕對苦逼。而git中的stash就是用來對付這種情況。

stash在英文中的意思是:隱藏。在git**管理的過程中,它的作用也是隱藏沒完成的**,防止它干擾 別人 或者 新分支的工作。

關於git stash,常用命令如下:

命令作用

git stash

隱藏當前的工作現場, 此時,git status的結果是clean

git stash list

檢視所有隱藏, 每一行的冒號前面的字串就是標識此隱藏的id

重新顯示標識為id的隱藏

git stash drop

假設:正當我在 master 分支上寫著文件時候(沒有完成、沒有提交),同事發現hello.py這個指令碼有問題,緊急報告給我進行修復。

收到報告,下意識就是開乙個 debug 分支來處理bug。但是,現在的文件沒完成,自然無法提交,又不能把沒提交的東西帶入到新建立的 debug 分支(執意如此,我也沒辦法 : ))。目前,status 如下:

為了達到目的,分為以下幾步:

隱藏修改:git stash:

建立新分支:git branch debug:

debug分支上修復bug, 並且將修改新增到log中 :

回到master分支, 合併debug分支的修改, 並且刪除debug分支 :

重新顯示隱藏的stash,並且將其從stash list列表中刪除 :

然後就可以愉快地繼續做自己的事情啦!

在實際生產過程中,難免會遇到多個 stash 的情況。此時,他們的id預設都是:stash,stash,stash... ...

當我們恢復乙個 stash ,並且將它從 stash list 中移除的時候,在其下方的 stash 記錄的id會自動變小,以保證id是從0到n的連續自然數列。所以,當從 stash list 移除乙個 stash 後,一些 stash 的 id 就會發生改變。此處是個坑。

Git實戰手冊 三 stash解惑與妙用

有空就來看看個人技術小站,我一直都在 在實際專案開發中,總會遇到 寫到一半 沒法去打commit 去開啟新的分支 修復bug 或者 增加功能 的情況。如果不處理,未修改的 就會被帶入臨時建立的新的分支,沒寫完的 和 要修復的 混合在一起,絕對苦逼。而git中的stash就是用來對付這種情況。stas...

GIT命令學習 暫存 stash

當對當前版本的文件進行修改後,而又想回到最初的版本進行一些額外的修改。這種應用場景很適用於早開發的過程中發現之前的 存在bug的情況並需要及時修改的情況。此時就可以使用stash命令,它會儲存當前的修改,並切換至head對應的提交版本處。git stash list 列舉暫存的所有條目,包括其名稱 ...

Git 中的stash功能

於 stash可以把當前工作現場 儲存 起來,等以後恢復現場後繼續工作。演示如下 1.檢視分支 有兩個分支master和subwork,當前的工作分支是subwork。git branch master subwork 2.檢視工作狀態 當前分支subwork上的工作尚未完成,如果有另一項任務需要優...