◽ Git

[Git] git diff : 커밋과 커밋 차이 파일명 뽑아내기 [option 정리]

kkk20000a 2020. 11. 16. 17:32

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