即時通訊使用Windows系統將我的更改推送到用戶使用macOS提交的git linux服務器,這可能是無效差異更改的問題嗎?不會更改的更改會顯示爲已刪除,並稍後以新的方式重新添加。即時通訊使用的崇高,也tryed NetBeans支持相同的行爲...Git diff太多錯誤的更改
回答
遠程回購混合cr/lf lineendings,以爲它是unix,現在我只是設置原始的lineending,如果它再次發生。
Windows和基於* NIX操作系統使用文件結束字符不同的線路。在你的情況下,你要在你的文件中添加Windows Carriage return字符,並在MacOSX上刪除它們。
在您的Sublime上,您可以更改保存的行結束字符以匹配MacOSX的行尾。請參閱is there a way to convert files line ending on saving。這樣你就不會看到這些變化。
您也可以指示git自動使用core.autocrlf
配置進行轉換。請參閱GitHub dealing with line endings
GitHub suggests您應該確保只使用\ n作爲git處理的回購庫中的換行符。有一個選項來自動轉換:
$ git config --global core.autocrlf true
當然,這是說,轉換CRLF到LF,而要轉換CR到LF。我希望這仍然工程...
然後將您的文件:
# Remove everything from the index
$ git rm --cached -r .
# Re-add all the deleted files to the index
# You should get lots of messages like: "warning: CRLF will be replaced by LF in <file>."
$ git diff --cached --name-only -z | xargs -0 git add
# Commit
$ git commit -m "Fix CRLF"
core.autocrlf
將此變量設置爲 「真」 幾乎是與在文本文件不是 之外的所有文件上將文本 屬性設置爲「自動」相同保證被規範化:存儲庫 中包含CRLF的文件不會被觸及。如果要在工作目錄中使用CRLF行 結尾,即使存儲庫不包含 具有標準化的行結尾,也可以使用此設置。該變量可以設置爲輸入,在 哪種情況下不執行輸出轉換。
有三種不同的行結束符,但Git只提供他們兩個人 (???)。 Windows使用'CRLF',Linux使用'LF'和OS X使用'CR'。因爲Git似乎沒有這樣做,所以我們在makefile中有食譜來標準化行尾。 – jww
將此變量設置爲「true」幾乎與將文本屬性設置爲「auto」在所有文件中幾乎相同,只是文本文件不能保證被標準化:存儲庫中包含CRLF的文件將不會被觸摸。即使存儲庫沒有標準化的行結尾,如果要在工作目錄中擁有CRLF行結尾,請使用此設置。該變量可以設置爲輸入,在這種情況下不執行輸出轉換。 – LuFFy
我有四臺OS X從10.4到10.10的機器。 (我的測試環境還包括帶有GCC 3的Fedora 1和帶有Visual C++ 6.0的Windows XP)。 – jww
- 1. Git diff工作不正確 - 對很多更改
- 2. GIT diff和GIT狀態忽略文件的更改
- 3. Perl「錯誤太多」錯誤
- 4. Git狀態不顯示更改,但git diff確實
- 5. 更新到Cocoapods 1.0後錯誤太多
- 6. Git diff參數可以改善源代碼更改對齊嗎?
- 7. git checkout修改太多文件
- 8. 太多的遞歸錯誤
- 9. 太多的值錯誤
- 10. 太多的方法錯誤
- 11. git diff最後提交加上所有未提交的更改?
- 12. Git diff不列出文件的特定更改?
- 13. 如何使用git diff找到添加的行(未更改)?
- 14. 使用變更ID的git diff
- 15. git錯誤:「索引文件太小」
- 16. git結帳錯誤。路徑太長
- 17. Git diff pattern
- 18. 實時git diff
- 19. git diff日期?
- 20. Git diff with textutil
- 21. Git diff忽略
- 22. Diff git fork
- 23. perforce diff to git
- 24. Simperium - Diff錯誤,UniCharMax
- 25. DIFF腳本錯誤
- 26. PHP datetime diff錯誤
- 27. 從我的Git diff命令中尋找更多信息
- 28. git的差異--word-DIFF給出錯誤的結果
- 29. GIT bash沒有通過「git diff」識別對「.classpath」文件的更改
- 30. 爲什麼「git log --name-only」顯示一個文件更改,但「git diff」顯示更多?
[git-diff忽略^ M]的可能重複(https://stackoverflow.com/questions/1889559/git-diff-to-ignore-m) – LuFFy