2011-12-10 40 views
3

直到昨天我的項目僅具有類似的.gitignore文件的一個分支:在Git中切換分支時,爲什麼會收到錯誤「Untracked working tree file」?

*.log 
upload/* 
!upload/global/empty.txt 

,直到我添加了一個新的分支,並改變了這種的.gitignore不要忽略上傳文件它工作得很好。新的.gitignore文件仍然只有一行:

*.log 

我回到分支沒有問題,但現在我要到新的分支,每次我收到類似這樣的消息:

error: Untracked working tree file 'upload/file.txt' would be overwritten by merge.

我需要檢查這個分支來使用它,或者至少救救我所做的提交。

注意:我發現這個similar question,但不回答我的問題。

+0

所以你從你的新分支中的'.gitignore'文件中刪除了'* .log'這行?你還在兩個分支的'.gitignore'文件中有'upload/*'? – Andy

+0

不,我刪除了「上傳/ *」和「!upload/global/empty.txt」行 – Ivan

回答

9

您的問題是,在新分支中,您沒有跟蹤upload/file.txt,但您正在主分支中跟蹤它。所以當你切換到你的新分支時,你的版本將會覆蓋未跟蹤的文件。

-f標誌添加到您的git checkout,強制git覆蓋未跟蹤文件。

+0

它的工作原理,我可以更改分支機構。但它給出了* upload *文件夾中每個文件的「無法取消鏈接」錯誤列表。 Git狀態在兩個分支中都表示「沒有提交」。有可能避免這種錯誤,或者我應該忍受嗎? :) – Ivan

相關問題