官方文檔有句話“切換分支的時候最好保持一個清潔的工作區域。”,不知道我的理解是不是正確的。如果你當前分支有修改,但是還沒有commit,如果你要切換分支的話,最好就是把內容都commit了?還是隻用add到暫存區,下次回來可以繼續。
闭关修行中......
我推薦你用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會提醒你容易被覆蓋,不會允許你操作的。
我推薦你用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指針從一個分支切換到另一個分支。
不是,因為你的change還不一定ready for commit,根據你的實際情況,你可以git stash暫存,你可以commit產生一個新的提交,你也可以git checkout -f強制切換分支
沒有進行commit並切換分支,目前檔案還在緩衝區。
不是對目前Git版本,進行提交。
在任意分支下方還可reset修改或commit.
測驗
如果沒有同名的,那麼無論是在暫存區還是未追蹤的,都可以切換。切換之後,一切照舊。
但是如果有同名的, git會提醒你容易被覆蓋,不會允許你操作的。