git을 사용하여 repo에없는 두 파일을 비교하는 방법


답변:


214

git의 diff는 표준 유닉스보다 더 기능적 diff입니다. 나는 종종 이것을하고 싶고이 질문이 Google에서 높은 순위를 차지하기 때문에이 답변이 나타나기를 바랍니다.

이 질문 : Git 저장소 외부 에서 사용하는 방법 git diff --color-words?

다음을 사용하여 git을 사용하여 파일 중 하나 이상이 저장소에없는 파일을 비교하는 방법을 보여줍니다 --no-index.

git diff --no-index file1.txt file2.txt

어느 것이 git에 의해 추적되고 어느 것이 추적되지 않는지는 중요하지 않습니다. 하나 또는 둘 다 추적되지 않을 수 있습니다. 예 :

$ date > x
$ sleep 2
$ date > y
$ git diff --color-words --no-index x y
diff --git a/x b/y
index 6b10c7c..70f036c 100644
--- a/x
+++ a/y
@@ -1 + 1 @@
Wed Jun 10 10:57:45|10:57:47 EDT 2013

색상은 여기에 표시 할 수 없으므로 예제에서는 파이프로 변경 사항을 구분했습니다.


14
이 동작을 기본값으로 원하면 .bashrc파일 (또는 사용하는 모든 것)에 별칭을 추가 할 수 있습니다 .alias diff="git diff --no-index"
counterbeing

1
참고 : Windows 용 Git에서 "--no-index"가 존중되지 않는 버그 (# 2123) 가있었습니다. 이 문제는 Windows 용 Git v2.21.0 (2019 년 2 월 26 일)에서 수정되었습니다.
StackzOfZtuff 19

"index 6b10c7c..70f036c 100644"행은 무엇을 의미합니까? 나는 그들이 다른, 2 개 바이너리를 비교하고,하지만 그 차이가 유일한 행입니다 ...
루카스 Salich

안녕하세요 @LukasSalich 그것은 그 라인 형식이 git에 의해 문서화 될 수있는 것처럼 보입니다 (예 : git-scm.com/docs/diff-format ) git의 diff는 바이너리 afaik을 비교하려고하지 않습니다. , 변경 사항이 식별 된 두 개의 SHA와 파일의 권한.
Kyle Burton

3

diff -u

git의 diff에 유사한 통합 컨텍스트 출력을 제공합니다.


1
그러나 좋은 채색을하지 않거나 호출기를 사용하지 않습니다.
Xiong Chiamiov

좋은 단어 diff도 허용하지 않습니다 ( git diff --word-diff).
Stefan van den Akker 19

0

diff 명령을 사용하십시오.

diff file1.ext file2.ext

2
Hmkay,이 시도했지만 내 의견으로는, 출력은 어쩌면 내가 ... 잘못 ... 단지 말도했다
세드릭의 Reichenbach

당신은 gvimdiff, kompare 또는 유사한처럼, 더 나은보기를 제공합니다 일부 GUI 도구를 실행할 수 있습니다
유진 Sajine
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.