2017-03-09 60 views
0

git stashgit stash pop這個問題的一個很好的解決方案?是否意外的分支開關git暗藏/ git隱藏pop可以嗎?

我正在分支B上工作,但偶然發生了一些事情,我不知道,把我放回到一個較老的分支,分支A,在那裏我一直在盲目地處理各種任務。

Git希望我將新工作提交給分支機構A,然後才能切換到分支機構B,但我不能(不應該)那樣做。

安全(意思是我不會失去我所有的工作,但能夠把它放到正確的分支),而在分支A(錯誤的分支)上,執行git stash,然後切換到分支B正確的分支)並做git stash pop?這樣做會遇到什麼災難嗎?我的所有工作是否會立即進入正確的分支,並且我可以像平常一樣承諾和推動?

我在點頭並不確定如何不炸燬我的Git項目。

This post回答我的問題,我想,但它是最新?此外,從該職位:

要還藏匿目前未追蹤(新增)文件,添加 參數-u

是什麼提交和未跟蹤/新添加的文件之間的差異?是不是未提交的文件或多或少「新增」?

回答

2

這正是存儲用例之一。如果修改後的文件在兩個分支之間不會不同,那麼您可以不用存儲就可以切換分支。但Git認爲你的分支交換機會覆蓋你的一些改變,如果你不強制改變,它會拒絕這麼做。

所以是的,你藏起來,切換分支,然後彈出存儲。然後,您可能會遇到可以解決的合併衝突,並且如果您正確執行了此操作,則可以恢復所有工作,並可以測試並提交到正確的分支。

如果您在本地創建了新文件,並且在切換到的分支中添加了相同的文件,則還會出現交換機會覆蓋本地文件的問題。爲此,還可以隱藏未跟蹤文件。

該術語中未跟蹤文件和未提交文件之間的區別在於,未跟蹤的文件在Git中尚未知曉,而未提交的文件是Git已經跟蹤的文件,但您對其進行了更改。未追蹤的文件當然也沒有提交。