본문 바로가기

CS 잡지식

git log, git diff(feat. git log -p)

예시 1) git log -p

git log  vs git log [-p]

git log -p는 git log와 달리 [코드]의 변화 history를 출력해 주는 명령어이다. 

위 그림에서 드래그를 한 부분을 살펴 보자.

이 부분은 version 22에서 version33으로 버전이 변하면서, [코드]가 어떻게 달라졌는지를 보여 주고 있다. 

( '+' : 변경(추가,수정)된 부분,

'-' : 이전 버전의 코드 부분)

--- /dev/null : version 22에서는 practice2.txt가 없었다. 

+++ b/practice2.txt : version 333에서 practice2.txt가 처음 생성됨. 그리고 그 내용은 "source : 2"이다.

참고사항

( commit d163e284f2d3efb6478d3fc05d07f7144c847fb8 등은 해당 버전의 고유 ID값이다.) 

 

 

 

예시 2) git log -p

[ - source : 1 ] : version 1에서는 f1.txt의 내용이 "source :1 "이였다.

[ + source : 2 ] : version 2에서는 f1.txt의 내용이 "source:2"로 변하였다.

 

git log [commit_ID]

단순히 git log를 통해 commit한 history를 보려고 하면, 최신 버전을 시작으로 일부의 버전 history만이 출력이 된다. 

그러나 위 그림과 같이 git log [commit_ID] 명령어를 통해 특정 버전을 필두로 그 이전의 버전에 대한 history를 볼 수가 있

다.

git diff [commit_ID]..[commit_ID]

만약, 전체 버전 중에서 특정 범위의 버전의 코드 변화를 보고 싶다면,

예를 들어 위 그림에서 버전 4의 코드가 버전2와 버전3이랑 어떻게 다른지 비교하고 싶다면,

git diff [버전4의 commit_ID]..[버전 2의 commit_ID] 명령어를 이용하면 된다. 

 

git diff

우리가 코드를 변경 및 추가를 하여 commit 명령어를 통해서 최종적으로 버전을 업데이트하기 전에, 내가 변경 및 추가한 

코드 내용을 다시 확인하고 싶을 때가 있다. 

이럴 때, git diff 명령어를 이용하면, 위 그림과 같이 다시 한 번 확인할 수가 있다. 이와 같은 기능이 중요한 이유는 예를 들

어, 1주일에 걸쳐서 코드 작업을 했다고 하자! 인간의 기억력은 한계가 있기 때문에 내가 1주일 전에 어떻게 코딩을 해 놓았

는지 기억이 나지 않을 수가 있다. 이때 git diff를 통해 변경된 코드를 확인하고 commit 명령어를 통해 버전을 최종 업데이

트하기 전에 실수한 부분이 없는지 체크가 가능하다. 

(git add를 통해 storage area에 올리기 전에 해야 변경 사항이 출력이 된다. git add를 한 후에 git diff를 실행하게 되면 아무 것도 뜨지 않는다)