git 切換分支的時候 是否需要提交目前已經修改過的
阿神
阿神 2017-04-21 11:16:00
0
5
793

官方文檔有句話“切換分支的時候最好保持一個清潔的工作區域。”,不知道我的理解是不是正確的。如果你當前分支有修改,但是還沒有commit,如果你要切換分支的話,最好就是把內容都commit了?還是隻用add到暫存區,下次回來可以繼續。

阿神
阿神

闭关修行中......

全部回覆(5)
大家讲道理

我推薦你用git stash 暫存起來,切換回來的時候用git stash apply重新取得剛才的變更。切換的時候給你一個乾淨的工作目錄:)

巴扎黑

有以下幾種處理方式:
1. add並且commit,再checkout,提交到當前分支
2. add但不commit,可以stash,然後checkout回來之後stash apply,在commit,提交到當前分支
3. add但不commit,也不stash,直接checkout,然後再commit的話,記錄就在切換分支下面。

其背後的原因:一個本地的git repo只有一個工作區和暫存區,但是有多個分支的提交區,而我們的checkout只是將HEAD指針從一個分支切換到另一個分支。

刘奇
如果你目前分支有修改,但還沒有commit,如果你要切換分支的話,最好就是把內容都commit了?

不是,因為你的change還不一定ready for commit,根據你的實際情況,你可以git stash暫存,你可以commit產生一個新的提交,你也可以git checkout -f強制切換分支

刘奇

沒有進行commit並切換分支,目前檔案還在緩衝區。
不是對目前Git版本,進行提交。
在任意分支下方還可reset修改或commit.

測驗

git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status

git br a
git br 
git br b

git co a
touch a.py
git add .

git co b
git st
git add .
git commit -m 'add a.py file'
git st

当前文件就回出现b分支下
如果这样,退回上次commit
git reset --hard
洪涛

如果沒有同名的,那麼無論是在暫存區還是未追蹤的,都可以切換。切換之後,一切照舊。
但是如果有同名的, git會提醒你容易被覆蓋,不會允許你操作的。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板