我正在研究git分支並準備好提交我的更改,因此我使用有用的提交消息進行了提交。然後我心不在焉地對那些不值得保留的代碼做了小小的修改。我現在想改變分支,但git給了我,git:切換分支並忽略沒有提交的任何更改
error: You have local changes to "X"; cannot switch branches.
我以爲我可以改變沒有提交的分支。如果是這樣,我該如何設置?如果不是,我該如何解決這個問題?我想忽略沒有提交的小改動,只是改變分支。
我正在研究git分支並準備好提交我的更改,因此我使用有用的提交消息進行了提交。然後我心不在焉地對那些不值得保留的代碼做了小小的修改。我現在想改變分支,但git給了我,git:切換分支並忽略沒有提交的任何更改
error: You have local changes to "X"; cannot switch branches.
我以爲我可以改變沒有提交的分支。如果是這樣,我該如何設置?如果不是,我該如何解決這個問題?我想忽略沒有提交的小改動,只是改變分支。
您需要一個乾淨的狀態來更改分支。只有在不影響'髒文件'的情況下才能允許分支結賬(如評論中的Charles Bailey備註)。
否則,你應該:
reset --hard HEAD
(如果你不介意失去這些微小的變化)或checkout -f
(當切換分支,繼續即使指數或工作樹從頭部是不同的。這是用來扔掉本地更改。)「你需要一個乾淨的狀態來改變分支。」只有當分支更改影響'髒文件'時纔是如此。 – 2009-08-20 11:46:37
VonC很好的回答以及Charles Bailey的評論 – 2011-01-10 13:07:33
對於存儲方法,我輸入了「git stash save」,「git checkout other branch」,然後最後輸入「git stash pop」。 – 2011-10-13 01:05:54
如果您更改了在切換分支時Git也需要更改的文件,它不會讓您。要放棄工作更改,請使用:
git reset --hard HEAD
然後,您將能夠切換分支。
關注,
$: git checkout -f
$: git checkout next_branch
如果要放棄更改,
git checkout -- <file>
git checkout branch
如果你想保留更改,
git stash save
git checkout branch
git stash pop
事實上,Romerun所說的(完成):'git stash save'(當在工作branchY中),然後'git checkout branchX'做一些'git add/commit -m'等'git checkout branchY'和'git stash pop '找回存款 – Highmastdon 2012-11-09 09:36:41
也許是這樣。我有一種情況,儘管我想要做什麼回答說,如果我正確地理解它:存儲更改,從Y切換到X,然後彈出更改並在X上提交它們。 – 2015-10-06 17:02:31
很好,應該是
git stash save
git checkout branch
// do something
git checkout oldbranch
git stash pop
是的,存儲是全局的,而不是分支具體來說,如果我切換分支後隱藏彈出我會得到與其他分支一樣的存儲 – 2016-01-19 19:07:54
應該注意'git存儲將默認爲'git存儲保存' – 2016-08-08 14:19:49
謝謝,這對我很有幫助 – 2017-05-24 12:45:46
注如果你已經合併了遠程分支機構或者本地提交了一個ð想回去到遙控雲臺你必須做到:
git reset --hard origin/HEAD
單獨HEAD
將僅指本地提交/合併 - 好幾次我都忘記了復位時,以「你的資料庫是X結束提交提交..「當我完全打算核彈所有更改/提交併返回到遠程分支。
切換到一個新的分支失去的變化:
git checkout -b YOUR_NEW_BRANCH_NAME --force
切換到現有的分支失去的變化:
git checkout YOUR_BRANCH --force
我相信這只是發生時,他們的變化是上演承諾但不COMMITED?如果你還沒有使用git add或類似的方法來轉換文件,那麼git checkout對於更改分支就可以。 – 2009-08-21 03:16:41
嗨傑里米, 'staged'是什麼意思? 在更改分支之前強制用戶提交文件似乎不是一個很好的工作流程。例如,如果我在主存儲庫中並且很快想檢查分支中的某些內容。我必須首先將代碼提交給主人,即使代碼是一半寫的! 您是否確實應該可以在這種情況下檢查分支? – 2009-08-21 09:25:46
@boyfarrell您可以使用'Git stash'臨時保存更改而無需提交。 – Howiecamp 2016-10-29 23:01:58