2013-11-20 62 views
1

試圖清理行結束。 我在Git中有一個文件(主要在Windows和Mac OSX的Eclipse中進行編輯)行結尾會混亂;你可以在下面看到這個文件是如何出現在一個Git diff中的。標準化行結束

在任何情況下,該文件被查看或編輯(cat,Eclipse,Emacs,Windows或OSX)文件顯示正常。這只是差異顯示這個問題。

我已經在這裏使用了Git規範化建議(http://git-scm.com/docs/gitattributes),並試圖用各種腳本替換行結尾,但沒有運氣。

關於如何修復此文件的任何想法(這不是唯一在我的源代碼管理中發生的,但是其他文件很好,我找不到一致的模式可以幫助我理解原因) 。

--- a/src/main/java/com/pcs/Utils.java 
+++ b/src/main/java/com/pcs/Utils.java 
@@ -1 +1 @@ 
-package com.pcs;^M^M/*^M^M LABORATORY INFORMATION SYSTEM V1.0^M Copyright (C) 2001 by John 
\ No newline at end of file 
+package com.pcs;^M^M/*^M LABORATORY INFORMATION SYSTEM V1.0^M 

回答

1

單個^ M字符(或\ r)是Mac換行符。你可以用'mac2unix'來刪除它們。 Dos2unix不會轉換Mac換行符。 Mac2unix不轉換DOS換行符。

+0

謝謝歐文。我已經用我的perl腳本解決了這個問題;但不知道mac2unix,它回答了我的問題。 – Greg

0

像往常一樣......我把問題發佈到Stack後的快速解決方案。

我曾嘗試過兩種解決方案,在搜索如何修復Mac OSX中的行結尾後發現。

  1. DOS2UNIX的
  2. 貓文件| col -b> file2

這些都沒有工作。

最後,我試着'perl -pi -e's/\ r/\ n/g''哪個技巧。爲了公平,雖然這出現在git diff中,但它不是git問題,它只是一個Mac/Windows行結束問題。