2012-09-01 41 views
4

我讀了.gitattributes,並告訴git不要爲幾個文件更改行尾。問題是,他們已經承諾。愚蠢的聰明的git現在不想撤消它所做的事情。刪除和重新添加這些文件不會有幫助(它優化了更改)。現在,我必須手動重新複製這些文件,每當我從回購拉。Git - 在已提交的文件中不改換行結尾

我該怎麼辦?報告這是一個錯誤,並等待修復?以某種方式刪除提交對象強制git重新創建它們?後者似乎困難/危險。

編輯:我發現這個nice guide on GitHub完全刪除一個文件從回購。問題是,我不想把它從整個歷史中刪除。我必須,還是隻能爲最後一次提交做?如果我爲最後一次提交完成,Git會重新找到並重新優化嗎?

回答

1

我會重新解釋現在我已經深入挖掘的問題(我的原始描述稍微偏離),並解釋解決方法。

我的Windows機器上的問題文件有LF結尾。當我將它們推送到beanstalkapp.com時,它們保留了它們的LF結尾(與Git設置無關)。當我把它們拉到另一臺Windows機器上時,它們變成了CRLF。我添加了.gitattributes將它們視爲二進制文件,但是在另一臺Win機器上拉取這個文件並沒有把它作爲LF檢查出來。

其他Win上的Git應該在檢測到新的.gitattributes時重新正確地重新檢測它們,但是沒有。另外,在一次提交中刪除,在下一次重新添加它們,但是在1步中推動它們並在1步中拉動它們也不起作用。

我不得不提交它們都被刪除的提交。然後當他們重新添加時,我不得不再次拉。這讓另一臺Win機器正確地檢查了它們。 我沒有嘗試在另一臺Win機器上刪除它們並進行重置--hard,有人建議可能也會清除Git的大腦。

我會寫信給郵件列表拉動.gitattributes的行爲應該是什麼。

+0

郵件列表查詢的結果是什麼? – Arafangion

+0

@Arafangion不要以爲我做到了。 –

-1

1)重置您的歷史到最後正確的提交(警告:只有做到這一點,你還是身體有些人有沒有做過項目

2)更新.gitattributes改正值的新變化

3)提交

4)用--force屬性推送。

+0

沒有最後的正確提交。這些文件從一開始就不正確,並且他們被添加了一些(有用的)提交。但是,「重置」是什麼意思?這會刪除對象嗎?因爲我希望git會重新找到這些對象並使用它們。 –

相關問題