Git老是有無法重置的二進制相同的修改?不用怕!


公元二〇一六年九月二十八日,新中國建國六十七年國慶前三天,有 重大發現!git

基本能夠肯定問題所在:緩存

緣由就是 VS2015 建立項目時自動建立的 .gitattributes 文件,一直以來,我長期以來,都一直覺得裏面只有微軟風格的「永遠絕對正確」卻「永遠絕對沒用」的註釋,
可是,我錯了,我今天偶然的發現,一個項目在 git 中的差別, 放這個文件 和 不放這個文件有差別!
——那就說明這個文件在起做用啊。裏面有什麼東西?
——是的有:
Line 4:* text=auto
——雖然全文只有這樣有用,可是也由於全文3K的長度,只有這9個字符有用,因此忙碌的碼農們天然沒空細看,結果給微軟坑死!服務器

爲何發生問題的人不多?由於只有設置成「以原樣簽出,以原樣簽入」的時候,纔會和這條配置發生奇妙的反應。。。。我真的也是醉了!工具

--- 重要的分割線 ----開發工具

2016.09.29 通過驗證,個人推論徹底正確,我已修復以前損壞的項目。
建議:你們對於 VS2015自動生成的 .gitattributes 文件直接刪除掉。
提示:高科技是件危險的東西,在沒搞懂以前,最好先估算下破壞程度再動手。編碼

PS:熱情的回答,長期的關注這個問題,竟然 0 支持,0 感謝,知乎有句方言怎麼說來着:操作系統

「貴乎藥丸」。.net


----再也不重要的分割線----日誌


就是由於碰到這個問題,搜到這裏來的,求大神!!!求深刻了解Git原理的大神。開發

@輕揚 不是這個問題,若是是編碼的問題,二進制比較的時候能比較出來。

@張宇航 問者,咱們仍是本身研究下吧,各位咱們先列下本身的使用環境變量,看看有什麼異同之處:

操做系統:Win10
開發工具:VS2015
版本工具:GitExtensions
出現位置:添加的子模塊中。(剛剛試了把這個庫單獨拉出來,竟然顯示所有文件都不一樣。。。)
出現文件:目前有 *.cs *.sln 文件。
其它疑點:
這是一個好久的卻在不斷維護的庫(從2013年開始創建,如今推送到的是OSC服務器上)
我有懷疑是 VS2015自帶的 git版本(281)和 ge自帶的版本(195)不匹配的問題,可是我用(195)的版本依然出現同樣的結果。
2014.12日已經出現過一次狀況,當時是所有做爲更改提交。如今詭異的是,若是把項目切回這個更改之前,竟然顯示文件不用更改。——難道是之前某次 git 的bug致使文件散列碼錯誤,如今修復了又改回去了?


PS:有E文好的往官方發 bug 報告了嗎?
這個應該是由於 git 庫中存入的散列值和實際計算值不一樣形成的?
能否經過清除 .git 目錄裏的緩存達到再也不提示有的目的?
由於有些文件,原來是不顯示爲這種狀態的,可是一旦打開修改,再修改還原回去,就形成了這樣。

2016.09.10 新發現
在當前目錄裏面是二進制相同的,可是查看他們提交上去的文件,卻會發現,日誌中提交到服務器的文件的換行符是不一樣的。我這裏由於在 Win 下使用,通常設置爲「原樣簽出,原樣簽入」。不知道 @張宇航 的狀況如何?問題應該仍是出如今編碼這裏,彷佛簽出簽入的換行符設置哪裏有了故障。

相關文章
相關標籤/搜索