1. 程式人生 > >Git如何在不提交當前分支的情況下切換到其它分支進行操作——git stash

Git如何在不提交當前分支的情況下切換到其它分支進行操作——git stash

假如現在的Bug你還沒有解決,而上邊又給你派了一個新的Bug,而這個Bug相比較現在正在苦思冥想的Bug比較容易解決。

你想先解決新的Bug,可是之前的Bug還沒有解決完而不能提交。怎麼辦?

解決方法:在其他分支上另開爐灶解決。

首先你需要將此刻正在解決Bug的當前分支“儲藏”起來。例假如此時正在你在當前分支dev上已進行了Bug修改但還未提交。

此時你想去解決剛派下來的另一個Bug。而你需要在master分支上去修復這個Bug,第一步就需要先切換到master 分支。當你執行 $ git checkout master 命令的時候,將提示出錯:

error: Your local changes to the following files would be overwritten by checkout:
        readme.txt
Please commit your changes or stash them before you switch branches.

(請在切換分支之前提交您的更改或隱藏它們)

因為當前的分支dev 最初也是從master 分支上衍生出來的。而此時你要再從該分支上切換到其主分支。那麼你需要先把該dev分支上的改動提交後才能切換,但是該dev分支上還沒有完成全部的修改,你不想提交。那麼此時你就要選擇 stash 它們(你在當前分支上改動的卻沒有提交commit的內容)。

所以第二步,在當前分支上執行  $ git stash 命令。將當前分支存起來,id為 8528ea2 s

這時候再執行 $ git status 命令,顯示沒有東西需要提交,這個時候你就可以切換到master分支上了。

接著就可以在主分支master上建立並切換到新的分支去修復另一個Bug了。

那修改完那個Bug也提交後,就該回到dev 分支上去繼續修改那個未完成的Bug。

執行  $ git checkout dev 切換到 dev 分支,這個時候執行 git status 命令仍舊顯示沒有東西需要提交。畢竟我們前邊已經成功將dev上未提交的改動給“隱藏“了,這時,用  $ git stash list  命令去檢視我們“儲存”的列表

會發現id 為  8528ea2 s 的儲藏專案在列表中,我們需要將其恢復,有兩個辦法:

一、用 $ git stash apply 命令恢復,但是恢復後,stash內容並不刪除,這時候再執行  $ git stash list 命令,id 為  8528ea2 s 的儲藏專案還會在列表中,你需要用 $ git stash drop 來刪除;


注意: 如果有一個分支上多個 stash,如果需要恢復指定的 stash ,可以在命令尾部加id,如  $ git stash apply [email protected]{0},同樣刪除指定 stash 專案則執行如 $ git stash drop [email protected]{1}  。


二、用  $ git stash pop  命令,恢復的同時把 stash 儲存列表的內容也刪了。這時候再執行  $ git stash list 命令,id 為  8528ea2 s 的儲藏專案不會在列表中。

此時再檢視 $ cat <filename>  會發現之前的改動還存在,且執行 git status 就會繼續顯示該分支上有改動未提交。

歡迎關注公眾號:

相關推薦

GIT 如何在提交Commit的情況切換分支

最近遇到一個問題,事情是這樣子的,剛剛接到客戶說他的專案有問題,於是就開啟本地的原始碼檢視經過排查確定了問題,於是就開始進行修正工作 將問題修復好準備提交到git的時候發現當前的分支是不對的,但問題是我已經在當前分支了作了大量修改,如果要切換分支則必須先要將修改過的檔案先提交 那麼現在問題來了:如何在不提交c

使用spring的情況用java原生程式碼操作mongodb資料庫的兩種方式

由於更改了mongodb3.0資料庫的密碼,導致這幾天storm組對資料進行處理的時候,一直在報mongodb資料庫連線不上的異常。 主要原因實際上是和mongodb本身無關的,因為他們改的是配

Git如何在提交當前分支情況切換其它分支進行操作——git stash

假如現在的Bug你還沒有解決,而上邊又給你派了一個新的Bug,而這個Bug相比較現在正在苦思冥想的Bug比較容易解決。 你想先解決新的Bug,可是之前的Bug還沒有解決完而不能提交。怎麼辦? 解決方法:在其他分支上另開爐灶解決。 首先你需要將此刻正在解決Bug的當前

點擊不同按鈕,加載不同的頁面(使用iframe的情況

lis button sco oos cati 情況 main style pla <button id="button1">Load Html1</button> <button id="button2">Load Html2<

在macOS上安裝JDK的情況安裝Netbeans

ont asc nbsp 原版 分享 org http .sh 安裝 標題有些繞,解釋起來要從Java在桌面環境上的悲催現狀開始。 現在幾乎所有的網站都不用Java Applet,用Java編寫的桌面應用幾乎都是IDE。用Java編寫的IDE們為了安裝方便,幾乎都內嵌了JR

重啟的情況新增一塊磁盤中出現的問題以及掛載到對應的目錄的詳細解決方法

不重啟 情況下 新增一塊 在vm中添加一塊新磁盤:[[email protected] ~]# fdisk -l 進行掃描,但找不到新增的磁盤解決方法:[[email protected] ~]# ls /sys/class/scsi_host/ 查看總線主機號 [

linux通過phpize為php在重新編譯php情況安裝模塊memcache

memcache with tps emca 添加 pecl inux usr ron 通過phpize為php在不重新編譯php情況下安裝模塊memcache 1. 下載 wget http://pecl.php.net/get/memcache-2.2.4.tgz

vuejs在使用history的情況,回退返回到之前滾動的位置

切換 鉤子函數 activated 方式 原型圖 upd router html org   在vuejs裏,當切換到新路由時,想要頁面滾到頂部,或者是保持原先的滾動位置,就像重新加載頁面那樣(借用vuejs官方文檔一句話);但是官方文檔使用路由,來控制滾動行為是建立在HT

mysql 在忘記密碼能登錄情況的設置方法

init.d 測試方法 res roo where use debian ant 修改 現在終於被我找到了解決方法,如下(請先測試方法三,謝謝!): 方法一: # /etc/init.d/mysql stop # mysqld_safe --user=mysql --ski

說“快樂”還是“安康”?如何在擡杠的情況用AI搞定這問題

adding 抽取 中國 等等 news orm 工業 數字化 紅樓 祝大家端午節快樂,我們今天要聊的…..什麽?不能說快樂了?顯得沒文化?哦,那祝大家端午節安康,咱們今天……什麽?端午節安康都是一群營銷號瞎忽悠的,相信他們還是沒文化?到底還能不能好好說話了?要不我幹脆祝大

劃分vlan的情況,實現兩個網段的ip地址互通

add route 網關 tex terminal 劃分VLAN 技術 water term 簡介: 在不配置vlan的情況下,實現兩個網段的ip地址互通 配置命令 PC1和PC2配置好ip地址和網關的ip地址 在R1路由器的F0/0配置ip地址為192.168.

開啟excel的情況用python執行excel的萬得wind更新

 經常用excel顯示萬得資料的朋友會遇到一個問題,每次更新資料要開啟excel才行,比如如下程式碼獲取當日的所有A股。 =wset("sectorconstituent","date="&J3,"sectorId="&J4,"field=date,wind_code,s

如何在使用JS的情況在div中心挖一個洞

如何在不使用JS的情況下在div中心挖一個洞 前一段時間,我在論壇上看見一個2015年的帖子,說如何利用css在div中間挖一個洞。這個漸變大家想必都有很多方法辦到,但是這個洞就疑惑了。求助的兄弟如圖。 恰巧我面試的一家要招45k的前端工程師也出了一個這個問題。這家公司

如何在改變函式的情況,此函式加上新功能,用裝飾模式!

        最近專案上碰到一個需求,所有的伺服器與客戶端通訊的協議要加上時間戳的校驗,已防止使用者惡意修改時間。         我的天,現在的協議已經有50多條了,要改好多好多地方啊,有沒有什麼辦法在不改變原先函式的情況下

mybatis傳多個引數(使用@param註解情況),3.4.2版本之後出現#{0}-#{n}引數繫結異常

解決方案:        在mybatis配置檔案中宣告setting屬性的useActualParamName 引數值為false                   **

使用ssr的情況解決Vue單頁面SEO問題

最好的 但是 標簽 原來 .com 最好 問題 優先 存在 先說明下,上一篇的方法存在作弊行為 孤陋寡聞了,以前沒接觸過這些,果然不能投機取巧啊 替代方法 將原來放入隱藏標簽的內容放到骨架屏中用php預渲染 這樣頁面就會先展示重要的內容然後再顯示其他部分 麻煩點的就是

MySQL如何在重啟的情況,修改能動態修改的引數

文章目錄 如何在不重啟的情況下,修改生效不能動態修改的引數 一、簡介 二、如何解決 如何在不重啟的情況下,修改生效不能動態修改的引數 一、簡介 問題來源於DBA內部,主從複製中提供了引數slave_skip_

SQL Profiles的force_match引數在改變程式碼的情況解決沒有使用繫結變數的問題

How To Use SQL Profiles for Queries Using Different Literals Using the Force_Match Parameter of DBMS_SQLTUNE.ACCEPT_SQL_PROFILE (Doc ID 1253696.1)

jquey和js分別實現在圖片知道大小的情況始終居中在螢幕的中央

直接上程式碼 js程式碼 var img=document.getElementById('img'); console.log(img); var W=img.offsetWidth;//獲取圖片的寬度 console.log(W);

考慮順序的情況,對比兩個陣列是否相同

先說我遇到的需求   不考慮順序的情況下對比兩個json陣列字串是否相同,json字串是一個數組,程式碼和json字串結構如下: public static void main(String[] args) throws IOException {