上下文:我正在爲主人添加簡單功能。幾分鐘後,我意識到它不是那麼簡單,而且應該更好地工作到一個新的分支。Git:從主機上未分期/未分配更改創建分支
這種情況一直髮生在我身上,我不知道如何切換到另一個分支,並採取所有這些無法完成的更改,使主分支保持乾淨。我認爲git stash && git stash branch new_branch
會簡單地實現這一點,但是這是我得到:
~/test $ git status
# On branch master
nothing to commit (working directory clean)
~/test $ echo "hello!" > testing
~/test $ git status
# On branch master
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: testing
#
no changes added to commit (use "git add" and/or "git commit -a")
~/test $ git stash
Saved working directory and index state WIP on master: 4402b8c testing
HEAD is now at 4402b8c testing
~/test $ git status
# On branch master
nothing to commit (working directory clean)
~/test $ git stash branch new_branch
Switched to a new branch 'new_branch'
# On branch new_branch
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: testing
#
no changes added to commit (use "git add" and/or "git commit -a")
Dropped refs/[email protected]{0} (db1b9a3391a82d86c9fdd26dab095ba9b820e35b)
~/test $ git s
# On branch new_branch
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: testing
#
no changes added to commit (use "git add" and/or "git commit -a")
~/test $ git checkout master
M testing
Switched to branch 'master'
~/test $ git status
# On branch master
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: testing
#
no changes added to commit (use "git add" and/or "git commit -a")
你知道是否有實現這個的方法嗎?
雖然有一個簡單的解決方案,以你的問題,你能在你得到的結果是什麼,從你想有什麼不同規定? – Gauthier 2010-04-02 22:41:37
通過執行上述操作或底部的答案,未完成的更改同時在主分支和新分支上。我只希望他們在新的分支,所以我可以簽出主人並在另一件事上工作,而不會在 – knoopx 2010-04-02 22:56:18
附近浮動這些更改。請參閱我編輯的答案。如果您想簽出乾淨的主文件,則需要在新分支上提交本地更改。本地更改只是當前HEAD和磁盤上的文件之間的差異。本地文件上的這些更改沒有版本化,如果您想稍後檢索它們,則需要告訴git將它們保存在某處。 – Gauthier 2010-04-02 23:07:07