[Git] git diff : 커밋과 커밋 차이 파일명 뽑아내기 [option 정리]
git diff
커밋과 커밋 사이의 변경된 부분의 파일 목록을 표출해주는 기능인데, 수정된 파일을 전체 덮어씌울 필요 없이 수정된 파일만 덮어쓰려고자 할 때 필요한 기능이라 할 수 있겠다.
기본 사용법
#git diff --name-status {old_commit} {new_commit}
old_commit에 지난 커밋을 넣고 현재와 비교를 하려면 new_commit에 현재 최신 커밋id를 넣으면 된다.
옵션 1 "--name-status"
위에서 "#git diff --name-status {old_commit} {new_commit}"와 같이 명령어를 사용했는데, 이 옵션은 위에서 보이는 것처럼 파일의 성격이 나타난다.
- A : Added
- C : Copied
- D : Deleted
- M : Modified
- R : Renamed
- T : have their type (mode) changed
- U : Unmerged
- X : Unknown
- B : have had their pairing Broken
- * : All-or-none
옵션 2 "--name-only"
위와는 조금 다른 옵션인데, 앞의 파일의 성격이 나타나지 않는다.
---> 참고로 커밋을 하지 않은 워크스페이스(작업 공간)에서 적용된 파일들도 출력 가능하다.
명령어 : git diff --name-only HEAD~
위와 같이 명령어를 진행하면 최근 커밋에서 워크스페이스의 변화된 파일을 가져올 수 있다.
참고 :
https://runebook.dev/ko/docs/git/git-diff
https://stackoverflow.com/questions/29319361/how-to-see-diff-between-working-directory-and-staging-index