
這幾天,git出現了問題。
假設我有一個分支「master」。我創建了一個“正常”分支,“git checkout 正常”,然後我稍微更改了程式碼。
如果我“git checkout master”,然後執行“git status”,我在正常分支上所做的更改是可見的,而我在一個完全不同的分支上!
這不是我一直以來的行為。我不得不說我現在完全無能為力。我不知道發生了什麼事。
你能幫我一下嗎?我有 git 2.3.3,並且使用的是 Manjaro Linux。
答案1
您沒有將更改提交給普通的分支。僅更改了工作目錄中的檔案。
即使工作目錄發生變化,您也可以在 Git 分支之間切換。如果沒有衝突,Git 將顯示:
M test.txt
Switched to branch 'master'
這並不意味著這些變化現在已經發生掌握分支。它們只是在工作目錄中。所以你現在可以承諾他們掌握( git commit -a
) 或查看普通的並在那裡提交。
如果您的本機變更與您要簽出的分支上的變更之間存在衝突,Git 將顯示錯誤:
error: Your local changes to the following files would be overwritten by checkout:
test.txt
Please, commit your changes or stash them before you can switch branches.
Aborting
在這種情況下,您需要提交這些更改,stash
或者完全放棄才能簽出所需的分支。