1. 程式人生 > >git的工作區和儲藏區是共享的

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

開發十年,就只剩下這套架構體系了! >>>   

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

       為什麼呢?

       因為未add的內容不屬於任何一個分支, 未commit的內容也不屬於任何一個分支。 也就是說,對於所有分支而言, 工作區和暫存區是公共的。

       要想在分支間切換, 又不想又上述影響, 怎麼辦呢? git stash搞起。要注意,在當前分支git stash的內容, 在其他分支也可以git stash pop出來,為什麼? 因為:工作區和暫存區是公共的。

       

       建議自己操作並理解一下。

       不多說。
--------------------- 
作者:stpeace 
來源:CSDN 
原文:https://blog.csdn.net/stpeace/article/details/84351160 
版權宣告:本文為博主原創文章,轉載請附上博文連結!

 

 

解決問題

當執行命令 git  checkout develop 切換到develop分支時,如果之前的分支對檔案有修改,也會將修改的檔案資訊帶到develop分支上來。怎麼幹淨地切換到develop分支?有兩種方案,視情況而定。

方案一:git reset HEAD --hard

方案二:git stash

方案三:git commit

場景描述

1、當前分支:alanchen

2、在alanchen分支上修改了幾個檔案,如,A、B、C。

3、切換到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
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。