git diff 사용 방법: 커밋, 브랜치, 파일 및 병렬 실행
하나의 명령은 작업 폴더, 준비 영역, 커밋, 분기 및 태그를 비교합니다. 각각에 사용할 형식, 두 개의 점과 세 개의 점이 다른 이유, 실제 병렬 비교를 얻는 방법은 다음과 같습니다.
작성자: Kodmora
GitTree 뒤에 있는 소프트웨어 하우스
- 커밋 기록
- 브랜치
- 커밋
이 페이지에서
인수가 없는 `git diff`는 아직 준비되지 않은 변경 사항을 표시합니다. `git diff --staged`는 다음 커밋에 포함될 내용을 표시하고 `git diff main feature`는 두 개의 분기를 비교합니다. 하나의 파일로 제한하려면 양식에 -- path/to/file를 추가하세요. Git 자체에는 터미널에 나란히 표시되는 보기가 없습니다. 이를 위해서는 git difftool 또는 Git GUI가 필요합니다.
어떤 git diff 명령이 필요합니까?
| 당신은보고 싶어 | 명령 |
|---|---|
| 아직 준비되지 않은 변경사항 | git diff |
| 다음 커밋에 포함될 내용 | git diff --staged |
| 마지막 커밋 이후의 모든 것 | git diff HEAD |
| 커밋 2개 | git diff <a> <b> |
| 두 개의 가지, 끝에서 끝까지 | git diff main feature |
| 분기가 분리된 후 추가된 항목 | git diff main...feature |
| 태그 2개 | git diff v1.0 v2.0 |
| 파일 1개 | git diff -- src/search.ts |
git diff 출력을 어떻게 읽나요?
diff --git a/src/search.ts b/src/search.ts
index 4e1f2a0..9b3c7d1 100644
--- a/src/search.ts
+++ b/src/search.ts
@@ -12,7 +12,7 @@ export function search(query: string) {
const terms = tokenize(query);
- return index.find(terms, { limit: 20 });
+ return index.find(terms, { limit: 50 });
}---및+++는 파일의 이전 버전과 새 버전의 이름을 지정합니다.@@ -12,7 +12,7 @@은 덩어리 헤더입니다. 각 버전의 12번째 줄에서 7줄이 나옵니다.-로 시작하는 줄이 제거되고+이 있는 줄이 추가되었으며 나머지는 컨텍스트입니다.
독해 차이점 강의에서는 이 단계를 단계별로 연습합니다.
두 커밋을 어떻게 비교합니까?
# any two commits, older first
git diff 3e52f10 7c1d9ab
# the last commit against the one before it
git diff HEAD~1 HEAD
# one commit against its parent, with the message
git show 7c1d9ab두 브랜치를 어떻게 비교합니까?
# the tips of both branches
git diff main feature
# only what feature added since it left main
git diff main...feature
# a remote branch
git fetch origin
git diff main origin/main하나의 파일을 어떻게 비교합니까?
# working copy against the last commit
git diff HEAD -- src/search.ts
# the same file on two branches
git diff main feature -- src/search.ts
# a file at two commits
git diff HEAD~3 HEAD -- src/search.ts
# two files outside any repository
git diff --no-index old.txt new.txtgit diff가 공백을 무시하도록 하려면 어떻게 해야 합니까?
| 옵션 | 무시하는 것 |
|---|---|
-w 또는 --ignore-all-space | 다시 들여쓰기된 줄을 포함한 모든 공백 |
-b 또는 --ignore-space-change | 공백의 양 변화 |
--ignore-space-at-eol | 줄 끝의 공백 |
--ignore-blank-lines | 빈 줄을 추가하거나 제거했습니다. |
이는 diff가 표시하는 내용에만 영향을 미칩니다. 준비되거나 커밋되는 내용은 변경되지 않습니다. -w은 다시 들여쓰기로 인해 전체 파일이 변경된 것처럼 보일 때 접근할 수 있는 항목입니다.
변경된 파일만 나열하려면 어떻게 해야 합니까?
# names only
git diff --name-only main...feature
# names with A, M, D or R
git diff --name-status main...feature
# lines added and removed per file
git diff --stat main...feature어떤 단어가 변경되었는지 어떻게 알 수 있나요?
git diff --word-diff
git diff --color-wordsWord diff는 하나의 변경된 단어가 전체 줄을 변경된 것으로 표시하는 Markdown 단락과 같은 긴 줄에 도움이 됩니다.
병렬 비교를 얻으려면 어떻게 해야 합니까?
일반 git diff은 단일 열을 인쇄하며 병렬 옵션이 없습니다. 두 개의 열을 얻는 방법에는 세 가지가 있습니다. diff 프로그램에서 git difftool을 가리키거나, delta와 같은 터미널 호출기를 설치하거나, Git GUI를 사용하는 것입니다.
# pick a tool once
git config --global diff.tool vimdiff
# open each changed file in it
git difftool main...feature
# skip the prompt for each file
git difftool -yGitTree에서 나란히 있는 차이점을 읽는 방법
차이점 열기
작업 변경 사항이나 커밋에서 변경된 파일을 선택합니다.
뷰를 선택하세요
diff 위의 Diff 보기에서 Hunk, Inline 또는 Split을 선택합니다. 분할은 전후를 나란히 표시합니다.
조정하세요
명령 팔레트에서 Ignore Whitespace in Diffs, Highlight Changed Words 또는 Wrap Diff Lines를 실행합니다.
두 브랜치 비교
참조 비교…를 실행하여 두 개의 브랜치, 태그 또는 커밋을 선택하고 베이스 병합 또는 끝에서 끝까지 병합 이후의 변경 사항을 확인하세요.

모든 옵션에 대해서는 차이점 보기 선택 및 사용 및 참조 비교를 참조하세요.
자주 묻는 질문
git diff에 아무것도 표시되지 않는 이유는 무엇입니까?
변경사항이 이미 준비되어 있을 것입니다. git diff는 작업 폴더를 준비 영역과 비교하므로 git diff --staged 또는 git diff HEAD를 실행합니다. 추적되지 않은 새 파일은 추가할 때까지 나타나지 않습니다.
git diff와 git status의 차이점은 무엇입니까?
git status에는 변경된 파일이 나열됩니다. git diff은 그 안에 변경된 줄을 표시합니다.
내 브랜치와 메인 브랜치를 어떻게 비교하나요?
브랜치의 작업만 보려면 git diff main...HEAD를 실행하세요. 먼저 가져오고 origin/main을 사용하여 최신 원격 버전과 비교하세요.
git diff --cached는 --staged와 동일합니까?
예. 동일한 옵션에 대한 두 가지 이름입니다.
차이점을 파일에 어떻게 저장하나요?
git diff > changes.patch을(를) 실행하세요. 패치 생성 및 적용 방법에 표시된 대로 나중에 파일을 적용할 수 있습니다.
출처
다른 제품에 대한 주장은 2026년 11월 7일의 공식 페이지에서 확인되었습니다. 가격과 기능은 변경됩니다. 공급업체 페이지가 진실의 원천입니다.
