개발관련/Git

git-diff ^ M을 무시하는 방법

Rateye 2021. 12. 11. 15:45
728x90
반응형
질문 : ^ M을 무시하려면 git-diff

일부 파일에 개행 구분 기호로 ^ M이 포함 된 프로젝트에서. git-diff는 전체 파일이 한 줄에 불과하기 때문에 이러한 파일을 비교하는 것은 분명히 불가능합니다.

이전 버전과 어떻게 다른가요?

"diffing 할 때 ^ M을 줄 바꿈으로 처리"와 같은 옵션이 있습니까?

prompt> git-diff "HEAD^" -- MyFile.as 
diff --git a/myproject/MyFile.as b/myproject/MyFile.as
index be78321..a393ba3 100644
--- a/myproject/MyFile.cpp
+++ b/myproject/MyFile.cpp
@@ -1 +1 @@
-<U+FEFF>import flash.events.MouseEvent;^Mimport mx.controls.*;^Mimport mx.utils.Delegate
\ No newline at end of file
+<U+FEFF>import flash.events.MouseEvent;^Mimport mx.controls.*;^Mimport mx.utils.Delegate
\ No newline at end of file
prompt>

최신 정보:

이제 최신 10 개 개정판을 확인하고 CR을 LF로 변환하는 Ruby 스크립트를 작성했습니다.

require 'fileutils'

if ARGV.size != 3
  puts "a git-path must be provided"
  puts "a filename must be provided"
  puts "a result-dir must be provided"
  puts "example:"
  puts "ruby gitcrdiff.rb project/dir1/dir2/dir3/ SomeFile.cpp tmp_somefile"
  exit(1)
end

gitpath = ARGV[0]
filename = ARGV[1]
resultdir = ARGV[2]

unless FileTest.exist?(".git")
  puts "this command must be run in the same dir as where .git resides"
  exit(1)
end

if FileTest.exist?(resultdir)
  puts "the result dir must not exist"
  exit(1)
end
FileUtils.mkdir(resultdir)

10.times do |i|
  revision = "^" * i
  cmd = "git show HEAD#{revision}:#{gitpath}#{filename} | tr '\\r' '\\n' > #{resultdir}/#{filename}_rev#{i}"
  puts cmd 
  system cmd
end
답변

GitHub는 git-handled repos에서 개행 문자로 \ n 만 사용해야한다고 제안합니다. 자동 변환 옵션이 있습니다.

$ git config --global core.autocrlf true

물론 이것은 crlf를 lf로 변환하고 cr을 lf로 변환하려는 경우라고합니다. 여전히 작동하기를 바랍니다.

그런 다음 파일을 변환하십시오.

# Remove everything from the index
$ git rm --cached -r .

# Re-add all the deleted files to the index
# You should get lots of messages like: "warning: CRLF will be replaced by LF in <file>."
$ git diff --cached --name-only -z | xargs -0 git add

# Commit
$ git commit -m "Fix CRLF"

core.autocrlf는 man 페이지 에 설명되어 있습니다.

출처 : https://stackoverflow.com/questions/1889559/git-diff-to-ignore-m
728x90
반응형