Git是一個非常棒的SCM。然而,我對一個問題感到無限困惑。甚至在git rm和git結帳之後,Git忽略的文件正在被跟蹤
我有一個配置文件在.gitignore
而不是master
分支origin
(通過git show -- config/mongo.yml
)。但是在我的分支,它是從origin/master
簽出並繼續工作了一段時間,該文件被莫名其妙地跟蹤,當我git rm
和origin/master
git checkout
了一遍,這些文件留在我的回購協議,但消失,其他人在我的球隊。我跑git rm --cached
的歡迎,並作爲最後的手段,我跑:
git update-index --assume-unchanged -- config/mongo.yml
我已經多次使用,效果良好的或忽略的文件,以及分支小到足以重做。但是,這似乎並不是解決問題的方法。我真的很想知道這個「爲什麼」並理解問題,因爲這是解決方案的3/4! :)
我怎麼能在我的.gitignore
,然後它顯示跟蹤後git rm config/mongo.yml
和git checkout origin/master -- config/mongo.yml
?
去除從.gitignore文件以並切換到承諾不具有該文件(並沒有它的.gitignore):
不確定確切的答案,但我認爲可能存在分支衝突,其中一個分支正在跟蹤該文件,而另一個分支未跟蹤該文件。被提交當你做什麼,你得到的git ** **狀態# –
變化: #(使用 「git的重置頭 ...」 來unstage) # #\t新文件:配置/ mongo.yml –
但由於git rm和git rm --cached應該完全移除被跟蹤的文件,這不應該發生在我的理解中。 –