我在我的本地git倉庫中有兩個分支:master
和anotherbranch
。當我從master
切換到anotherbranch
與git checkout anotherbranch
並運行git status
我看到修改後的文件。爲什麼工作目錄中的文件在Git分支之間切換時獲得修改狀態?
我用git reset HEAD
取消這些修改,然後git status
不顯示它們。但是,當我切換到主並切換到分支後,我再次看到這些修改後的文件。
你能解釋一下發生了什麼嗎?
我在我的本地git倉庫中有兩個分支:master
和anotherbranch
。當我從master
切換到anotherbranch
與git checkout anotherbranch
並運行git status
我看到修改後的文件。爲什麼工作目錄中的文件在Git分支之間切換時獲得修改狀態?
我用git reset HEAD
取消這些修改,然後git status
不顯示它們。但是,當我切換到主並切換到分支後,我再次看到這些修改後的文件。
你能解釋一下發生了什麼嗎?
如果項目沒有在任一分支跟蹤,這些文件將在git status
爲untracked
顯示,和整個檢出
你不會autocrlf
set to true將求生存,以任何機會呢?
因爲它可以改變你的文件上籤出...
見線程「core.autocrlf considered half-assed」:
那時候,我是不是該
core.autocrlf
支持的粉絲。
*但我不得不承認,在此期間,我變成了一個徹頭徹尾的特徵粉絲。不是因爲它的意圖是錯誤的,而是因爲它的實現是糟糕的。只要嘗試到
git reset --hard
或git stash
當有DOS行結尾的文件和core.autocrlf不是false時。然後絕望。
@Mark:我的設置歷史悠久......有理由將其設置爲true(http://stackoverflow.com/questions/2825428/why-should-i-use-core-autocrlf-true -in-git),但還有其他方法:http://stackoverflow.com/questions/2332349/best-practices-for-cross-platform-git-config – VonC
我通常建議Windows用戶,他們unset core.autocrlf只需使用足夠複雜的工具來處理不同的行結尾。我承認這是警察,但它排除了這麼多混亂的問題。 –
git reset --hard將刪除索引中的修改。嘗試使用這個附加參數後,應該可以。
修改後的文件是否在兩個分支中被跟蹤?或者只在其中一個? – Amber
有些事情你沒有告訴我們,或者不清楚,因爲上述情況,正如你所描述的,是不可能的。你可以在你的問題中包含你的git命令的實際輸出嗎? –
我很想看看如何以一步一步的方式重現這一點。我試圖根據我所做的一些假設重新創建它,但不能。 – Tone