Dalam proyek di mana beberapa file berisi ^ M sebagai pemisah baris baru. Diffing file-file ini tampaknya tidak mungkin, karena git-diff melihatnya sebagai seluruh file hanya satu baris.
Bagaimana seseorang berbeda dengan versi sebelumnya?
Apakah ada opsi seperti "memperlakukan ^ M sebagai baris baru saat berbeda"?
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>
MEMPERBARUI:
sekarang saya telah menulis skrip Ruby yang memeriksa 10 revisi terbaru dan mengonversi CR ke LF.
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
git diff --ignore-cr-at-eol
. Lihat jawaban saya di bawah ini .
git diff -b
identik dengan git diff --ignore-space-change
.
git diff -b
- Saya menunjukkan ini di stackoverflow.com/a/46265081/58794