→ aquarianboy: 可查一下 git stash 12/17 17:27
→ nakahusa: 喔喔~ 感謝a大,這樣就可以避免不必要的 commit 了 12/17 17:46
→ nakahusa: 所以如果沒有使用 stash,也沒先進行 add 和 commit 就 12/17 17:47
→ nakahusa: checkout 到其他 branch 確實會有檔案錯亂的問題對嗎? 12/17 17:47
→ nakahusa: 還是我使用的方法有錯呢? 12/17 17:47
→ mmis1000: 預設你沒stash他根本不給你checkout阿 12/17 18:31
m大,我確實在未 commit 時可以 checkout 到其他 branch 耶…
git branch test
git checkout test
vi 1.test
git checkout master <--- 可以正常 checkout,此時 git status 會看到
Untracked files:
1.test
而且 master 檔案裡也會多出 1.test
git checkout test
git add 1.test
git checkout master <--- 還是可以正常 checkout,此時 status 會看到
Changes to be committed:
new file: 1.test
似乎沒 commit 時就 checkout 會把目前 stage 的狀態帶到 checkout 後的 branch,
也就是說 branch 可以有很多個,可是 stage 只有一個,
不知道我的理解對嗎?
※ 編輯: nakahusa (111.250.64.11), 12/17/2014 23:04:58
→ nakahusa: 忽然想到 stage 透過 stash 也可以很多個… 應該是說 12/17 23:08
→ nakahusa: stage 不是對應 branch 而是分開管理的,每個 branch 沒 12/17 23:08
→ nakahusa: 有自己的 stage,這樣對嗎 QQ" 12/17 23:09
推 LPH66: 你的問題是你的改動是新增檔案, 這跟修改檔案又不一樣了 12/17 23:13
→ LPH66: 新增檔案不會對已有的檔案做更改, 所以切換 branch 時除非 12/17 23:14
→ LPH66: 那個檔案在目標 branch 有才會有衝突 12/17 23:14
→ LPH66: 因此這種狀況 git 就會讓你切過去 12/17 23:14
L大,我剛有再測試了一下,
master 有 1.test 這個檔,
git branch test
git checkout test
vi 1.test 並修改檔案內容,
git checkout master <--- 可以 checkout,而且 master 裡的 1.test 也會是修改過的
git status
Changes not staged for commit:
modified: 1.test
git branch test
git add 1.test
git checkout master <--- 就算有 add 還是可以 checkout 到 master,1.test 也是修
改過後的
git status
Changes to be committed:
modified: 1.test
※ 編輯: nakahusa (111.250.64.11), 12/17/2014 23:34:58
→ mmis1000: 看來是,如果兩個branch中的commit過的檔案一樣 12/18 02:34
→ mmis1000: 就能切過去,如過不一致,他就會要你先stash 12/18 02:35