Git,  Programming

[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

  1. https://lovemewithoutall.github.io/it/git-diff-name-status/

Leave a Reply

Your email address will not be published. Required fields are marked *