git的工做區和儲藏區是共享的

 git 切換分支時會把未add或未commit的內容帶過去, 這一點值得注意。git

       爲何呢?工具

       由於未add的內容不屬於任何一個分支, 未commit的內容也不屬於任何一個分支。 也就是說,對於全部分支而言, 工做區和暫存區是公共的。spa

       要想在分支間切換, 又不想又上述影響, 怎麼辦呢? git stash搞起。要注意,在當前分支git stash的內容, 在其餘分支也能夠git stash pop出來,爲何? 由於:工做區和暫存區是公共的。.net

       

       建議本身操做並理解一下。blog

       很少說。
--------------------- 
做者:stpeace 
來源:CSDN 
原文:https://blog.csdn.net/stpeace/article/details/84351160 
版權聲明:本文爲博主原創文章,轉載請附上博文連接!開發

 

 

解決問題

當執行命令 git  checkout develop 切換到develop分支時,若是以前的分支對文件有修改,也會將修改的文件信息帶到develop分支上來。怎麼幹淨地切換到develop分支?有兩種方案,視狀況而定。get

方案一:git reset HEAD --hardit

方案二:git stash文件

方案三:git commitco

場景描述

一、當前分支:alanchen

二、在alanchen分支上修改了幾個文件,如,A、B、C。

三、切換到develop分支時,A、B、C這三個文件的修改也會帶過來。用 git status 查看,能夠看到A、B、C這三個文件有修改。

方案一適用場景

想切換到develop分支時是乾淨的,若是這些修改再也不須要,能夠直接丟棄胡話,採用第種方案。

執行命令:

git checkout develop

git reset HEAD --hard

須要注意的是:

這樣alanchen分支上A、B、C的修改也沒有了

方案二適用場景

若是這些修改還須要,只是想臨時切換到develop分支,那麼採用第二種方案。

執行命令:

git stash

git checkout develop

方案三適用場景

若是是同時開了兩份分支在開發,在當前分支上的修改都須要保留,但願切換到另一個分支去開發,那麼採用第三種方案。

執行命令:

git add .

git commit -m "message"

git checkout develop

參考文章

Git 工具 - 儲藏(Stashing)

做者:陳琰AC 連接:https://www.jianshu.com/p/d2a9d8e59ba9 來源:簡書 簡書著做權歸做者全部,任何形式的轉載都請聯繫做者得到受權並註明出處。

相關文章
相關標籤/搜索