줄 끝을 수정하지 않고 파일을 그 자리에서 편집합니다.

줄 끝을 수정하지 않고 파일을 그 자리에서 편집합니다.

Git 버전 제어에서 소스를 수정해야 합니다. 소스는 Visual Studio 프로젝트 파일이며 이를 기본 Microsoft로 만듭니다. 나는하고 싶다피하다줄 끝 게임을 포함한 공백 문제.

emacs에서 수정하기 전의 파일을 살펴보았는데,^M분명히 존재하지 않았습니다.

그런 다음 Linux 시스템의 스크립트에서 다음을 실행했습니다.

sed -i 's/odbc32.lib //g' *.vcproj
sed -i 's/odbccp32.lib //g' *.vcproj

변경 사항을 살펴보면 다음과 같습니다.

$ git diff cryptest.vcproj
diff --git a/cryptest.vcproj b/cryptest.vcproj
index cec447d..9ae71ea 100644
--- a/cryptest.vcproj
+++ b/cryptest.vcproj
@@ -76,7 +76,7 @@
...
Name="VCLinkerTool"
-        AdditionalDependencies="odbc32.lib odbccp32.lib Ws2_32.lib"
+        AdditionalDependencies="Ws2_32.lib"^M
        SuppressStartupBanner="true"
...

불필요한 공백을 추가하지 않고 어떻게 교체를 수행합니까?

답변1

요즘 emacs는 파일에 사용된 줄 끝을 자동으로 감지하므로 파일에 줄 끝이 \n있는지 \r여부를 알 수 없습니다. \r\nemacs의 모든 편집 내용은 줄 끝을 유지하고 모방합니다.

파일에 있는 내용을 실제로 보려면 , 탭( ) 및 줄 끝( ) cat -vet을 포함한 제어 문자를 표시해 볼 수 있습니다 .^M^I$

작업 디렉터리와 개체 데이터베이스 간에 텍스트 파일을 이동할 때 자동으로 변환하거나 그 반대로 변환 git하도록 구성할 수 있습니다 . 이것 좀 봐\r\n\n기사기사Git이 전역적으로, 저장소별로 어떻게 구성되어 있는지 확인하고 이를 변경하는 방법을 확인하세요.

.sed\r​나는 당신이 Unix 시스템을 사용하고 있다고 가정합니다.


작업 디렉터리 상단에서 다음 명령이 아무것도 표시되지 않는지 확인하세요.

git config core.eol
git config core.autocrlf
find . -name .gitattributes -o -name attributes

편집되지 않은 원본 파일을 실행하여 줄 cat -vet전체가 3자로 끝나는지, 일부 줄이 있는지, 아니면 전혀 없는지 확인하세요 ^M$.

관련 정보