Issue: Bitbucket顯示整個文件已經改變,即使我沒有看到任何差異。這些文件中沒有合併衝突。Bitbucket CRLF問題?
詳情: 我創建了一個衝刺分支(名爲「sprintbranch」)和開發人員創建一個特性分支從衝刺分支(名爲「featurebranchX」)。我開始將功能分支合併回sprint分支,並在實現功能時進行合併。現在有在那裏我遇到一個問題,兩個方案:
- 開發人員創建一個拉入請求合併featurebranch1到sprintbranch
- 如果有合併衝突,開發商合併sprintbranch到featurebranch1並創建一個pull請求合併featurebranch1成sprintbranch。
兩次bitbucket都顯示整個文件已經改變。並沒有合併衝突。
發生這種情況時,我無法進行代碼審查,因爲我不知道開發人員修改了哪些特定行。此外,我在這一點上失去了歷史 - 回顧我無法弄清楚實施或合併到sprint分支中的內容。
我的猜測是問題是與行結束。與CRLF有關。但是,當我提交我的工作時,我確實看到相應的行結束符正在自動使用(通過git或SmartGit之類的工具)
如何解決此問題,以防止它繼續發生?
更新:
我剛剛發現我可以拉請求忽略CR LF差異的URL的末尾追加一個查詢字符串w=1
。
但是這些文件仍然存在於提交中,當我將它合併回來時,它會包含這些差異嗎?
我加了一個.gitattributes用'*文本EOL = lf'(並提交它),預計將有大量的文件會自動進行修改和行尾固定。那沒有發生。行結束符的更改何時會反映在我的回購中? – shravanp
我想你還需要設置(全局)配置選項'core.autocrlf',然後按照github幫助頁面上描述的步驟進行操作。 – Arjan
根據我的理解,全局配置的問題是您必須確保每個開發人員都遵守它。爲了消除對開發人員的依賴,他們有.gitattributes。但他們的指南確實說過:「在設置core.autocrlf選項並提交.gitattributes文件後,您可能會發現Git希望提交未修改的文件」。 我試着添加ony的.gitattributes。我會試着用兩種方法來看看會發生什麼。 – shravanp