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
參考文章
作者:陳琰AC
連結:https://www.jianshu.com/p/d2a9d8e59ba9
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。