[Git & Github] (8) Git Diff

김유나·2023년 5월 15일
0

git-github

목록 보기
1/1

📌 Git Diff

git diff : 깃에서의 변경사항을 보여주는 명령어

  • 커밋, 워킹 디렉토리 간의 변경사항, 스테이지 영역의 변경사항, 로컬과 깃허브에 있는 코드 사이의 변경사항 등 어떤 것이 변경되었는지에 대한 다양한 시나리오에 대한 변경사항을 비교할 수 있다.
  • git diff는 저장소에 어떤 작업도 하지 않고, git status나 git log처럼 순수하게 정보를 주는 명령어이다.
  • 단지 같은 이름의 두 파일을 다른 시점에서 비교하는 명령어이다.

git diff 읽는 방법

Compared files

  • 비교해야할 두 파일이 나타난다.
  • 실제로 동일한 파일인데 이전 버전과 새 버전으로 두가지 버전의 파일이 나타난다.
    -> (예제가 아닌 다른 상황에서는) 다른 파일이 되었을 수도 있다.

File metadata

  • 각 파일이 가지고 있는 고유한 해시
  • 별로 중요하지 않다.

Markers

  • 파일 a가 변경되어서 파일 b가 되었다고 알려주고 있다.
  • ---가 수정된(삭제된) 부분, +++가 추가된 부분이다.

Chunks

  • 변경된 파일의 모든 코드를 보여주지 않고 변경된 부분이 있는 콘텍스트의 앞뒤 약간을 보여준다.
  • Chunk Header : @@ 사이에 숫자들이 적혀져있음. 어디서부터 어느 정도의 라인이 추출되었는지 알려준다.

Changes

  • -빨간색으로 적힌 부분은 a 파일에서 변경된 부분, +초록색으로 적힌 부분은 b파일에서 변경된 부분이다.(빨간색이 삭제되고, 초록색이 추가됨)

git diff 명령어

  • git diff : 다음 커밋을 위해 스테이지에 등록되지 않은 워킹 디렉토리의 모든 변경사항을 보여주고 워킹 디렉토리와 스테이징을 비교한다.
  • git diff HEAD : 마지막 커밋(HEAD가 가리키는 커밋)부터 워킹 디렉토리에 있는 모든 변경사항의 목록들을 나열한다.
    -> 스테이지에 등록한 것과 그렇지 않은 모든 변경사항을 보여준다.
  • git diff --staged, git diff --cashed : 스테이지에 등록된 변경사항만을 보여준다.
  • gif diff [filename] : 특정 파일로 범위를 좁혀서 변경사항을 확인할 수 있다
  • git diff branch1..branch2 : 2개의 브랜치를 비교할 수 있다.
  • git diff commit1..commit2 : 2개의 커밋을 비교할 수 있다.
    -> commit에는 해당 커밋의 해시넘버를 적어주면 된다.
profile
노력하자

0개의 댓글