[Git] Commit간 변경된 파일 목록 조회 (git diff)
특정 commit 간 비교 또는 branch 간 비교 등 여러가지를 비교 할 수 있는 기능을 git
에선 지원한다. 이 때 변경 내용이 아닌 파일만 보고 싶을 경우엔 --name-status
옵션을 넣으면 된다.
Commit 간 비교
$ git diff [prev commit] [current commit] # Ex.) git diff --name-status HEAD HEAD~1 # 파일명만 비교하고 싶을 경우 # Ex.) git diff HEAD HEAD~1 # 만약 내용 전체를 보고 싶을 경우
Commit hash number를 통해서도 비교가 가능하다.
$ git diff [prev commit hash] [current commit hash] # Ex.) git diff --name-status 699ea8d 8c878e8 # 파일명만 비교하고 싶을 경우 # Ex.) git diff 699ea8d 8c878e8 # 만약 내용 전체를 보고 싶을 경우
원격 저장소의 특정 Branch와 비교
$ git diff [remote]/[branch] [local branch] # Ex.) git diff origin/master test1 --name-status
Branch 간 비교
$ git diff [branch1] [branch2] # Ex.) git diff master main
다른 파일 간 비교
서로 다른 파일간에도 비교가 가능하다. --
옵션 뒤에 적은 내용은 항상 경로로 인식한다.
$ git diff -- [path1] [path2]
특정 파일에 대해 변경점 비교
특정 commit간 또는 branch간 파일에 대해 변경 내용을 비교 할 수 있다.
$ git diff [commit1] [commit2] -- [file] # Ex.) git diff HEAD HEAD~5 -- src/aaa.cpp
추가로 다양한 옵션들이 존재한다.
A: addition of a file C: copy of a file into a new one D: deletion of a file M: modification of the contents or mode of a file R: renaming of a file T: change in the type of the file U: file is unmerged (you must complete the merge before it can be committed) X: "unknown" change type (most probably a bug, please report it)
Reference
- https://lovemewithoutall.github.io/it/git-diff-name-status/