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\n
emacs의 모든 편집 내용은 줄 끝을 유지하고 모방합니다.
파일에 있는 내용을 실제로 보려면 , 탭( ) 및 줄 끝( ) 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$
.