git status
# On branch master
nothing to commit, working directory clean
開始時,然後切換到一個新的分支和運行git status
混帳有時會抱怨隨機後切換到另一個分支
git checkout somebranch
抱怨隨意更改的文件更改文件。如果I DIFF與git diff
文件會先顯示整個文件已經撕去了所有行,然後再
- someline
- someotherline
+ someline
+ someotherline
然後運行git diff --ignore-space-at-eol .
不會顯示任何改變的文件導致我相信這是結束的問題某處線加在git repo裏面,因爲如果我用選擇的合併工具(Beyond Compare)對文件進行二進制比較,它會告訴我這些文件是二進制文件,即使git抱怨它們不一樣,我甚至會做一個十六進制比較而且他們確實是相同的,那麼爲什麼git會將他們視爲已更改?
這個倉庫是在舊的svn庫,將其轉變按照GitHub的指引https://help.github.com/articles/importing-from-subversion後,我們增加了我們的.gitattributes文件到看起來像這樣的解決方案:
# .gitattributes
# Auto detect text files and perform LF normalization
* text=auto
# Custom for Visual Studio
*.cs diff=csharp
*.sln merge=union
*.csproj merge=union
*.vbproj merge=union
*.fsproj merge=union
*.dbproj merge=union
# Standard to msysgit
*.doc diff=astextplain
*.DOC diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot diff=astextplain
*.DOT diff=astextplain
*.pdf diff=astextplain
*.PDF diff=astextplain
*.rtf diff=astextplain
*.RTF diff=astextplain
添加.gitattributes文件後我們也跟着從https://help.github.com/articles/dealing-with-line-endings githubs指南固定行尾
對球隊每個人都運行在Windows上,大家對團隊使用core.autocrlf =真實,每個人都使用至少
git --version
git version 1.8.3.msysgit.0
這裏有什麼問題? git抱怨的文件是完全隨機的,它發生在整個團隊中的每個人。也不可能通過一個git checkout文件來恢復它所抱怨的文件 - 這還沒有真正改變。
'.gitattributes'應該覆蓋開發者在'core.autocrlf'中設置的任何內容,這就是我們首先使用.gitattributes的原因。我們已經通過跟隨我在問題中提供的github的鏈接完成了您提出的修復,但我們仍然看到了問題。 –