GIT

GIT(깃) #4_ 버전 확인 및 비교하기

Tigercow.Door 2018. 1. 9. 21:11


안녕하세요. 지난 포스팅에서 commit이라는 기능을 통해 버전을 만들어 보는 과정을 살펴보았습니다.

이번에는 우리가 만들었던 버전들을 확인하고 과거의 버전들과 비교해보는 과정을 살펴보겠습니다.


1. 과거 버전 확인하기


먼저 과거에 우리가 어떤 버전을 만들었는지 확인해봅니다.

지난 포스팅에서도 중간중간에 쓰인 명령어 입니다.


git log


를 입력하면 아래 사진과 같은 결과가 출력됩니다.



위의 사진을 살펴보면 아래에서 시간순으로 우리가 진행했던 커밋이 나타납니다.

첫번째 커밋에서는 커밋 메세지를 'commit test'로 진행을 했습니다.

그리고 노란색으로 나와 있는 commit뒤의 내용은 commit ID라고 합니다. commit ID는 뒤에서 사용되니 일단 알아두도록 합시다.


이렇게 과거에 우리가 작성한, 만들어낸 버전들을 확인할 수 있습니다.



2. 과거 버전 비교하기 (1)


그런데 각각의 버전들이 코드상에 어떠한 변화를 주었는지는 어떻게 확인할까요?

바로 아래의 명령어를 통해 확인할 수 있습니다.


git log -p


위의 명령어를 입력하면 아래와 같은 결과가 출력됩니다.



아까 git log 명령어를 입력했을때와는 좀 다른 모습이죠?

해당 결과에서는 새로운 버전 관리(commit)으로 인해 코드상에 어떠한 변화가 있는지 까지 살펴볼 수 있습니다.

먼저 맨 아래, commit test 부터 간략히 살펴보겠습니다.


--- /dev/null 에서 맨 앞에 있는 ---은 이전의 버전에 대한 것을 말합니다. 즉, 해당 문장은 이전의 버전에서 아무것도 존재하지 않았다는 것 입니다.

+++ b/f1.txt 에서 맨 앞의 +++는 새롭게 관리된 버전에 대한 것을 말합니다. 즉, 해당 문장은 f1.txt에 대한 변화가 생겨났다는 의미입니다.

그리고 그 아래를 보면 +we study git+12345 라는 문장이 있습니다. f1.txt에 두 문장이 추가(+)되었다는 것을 의미합니다.


그리고 그 위의 버전 관리(commit)을 확인하겠습니다.

이전 버전에 대해 변화가 생긴 파일은 f1.txt파일이며 새롭게 관리된 버전에 대한 변화 또한 f1.txt에서 발생합니다. 그리고 +it changed!!! 를 통해 it changed!!! 라는 문장이 추가되었음을 알 수 있습니다.


좀 더 변화를 주고 확인해볼까요?


f1.txt를 아래와 같이 수정합니다.



그리고 새로운 버전을 생성합니다. 커밋 메세지는 3th commit이라고 하겠습니다.

그리고 좀 전과 같이 git log -p 명령어를 입력합니다.



위와 같은 결과가 출력되네요.

아래 두개의 커밋에 대해서는 위에서 살펴보았으므로 가장 최근, 제일 위에 있는 3th commit에 대해서 살펴봅니다. 코드가 변화된 내용을 보면, -12345, +here was number... 가 있습니다. 12345는 지워졌다는 의미이고 새롭게 here was number... 가 추가되었다는 의미입니다.



3. 과거 버전 비교하기 (2)


우리가 방금 알아본 방법에서는 연속된 버전들에 대한 비교만 가능하였습니다. 그런데 맨처음 버전과 3번째 버전의 비교를 하려면 어떻게 할까요?

이럴때는 각 커밋에 대한 commit ID를 필요로 합니다.

commit ID는 위에서 잠깐 말씀 드렸는데 git log 또는 git log -p 를 입력했을때 각 커밋에 대한 내용중 commit 뒤에 입력되어져있는 긴 문자열을 말합니다.


예를 들어 아래 사진에서 빨간 줄 쳐진 것들을 이야기합니다.



그리고 위의 사진에서 빨간줄 쳐진 두개의 commit ID를 이용하여 첫번째 버전과 세번째 버전에 대한 비교를 진행해보겠습니다.

명령어의 기본 형태는

git diff "commit ID1".."commit ID2"

입니다.


따라서 저는 다음과 같이 입력하겠습니다.


$ git diff b85cef55b135b541e2d91e9f34be8dff142fce04..7e9b25fae69d96c30fa400ad914f7b6aaad78dc0


이에 대한 결과는 아래 사진과 같습니다.

내용에 대한 설명은 위에서 언급한 것들과 비슷하므로 넘어가도록 하겠습니다.




4. 현재 수정 중인 것과 비교하기


git 에서는 또 다른 기능이 있습니다.

지금 작성 중인, 수정 중인 것에 대해서 제일 최근의 버전(commit)과 비교하는 것입니다.

이를 확인하기 위해 f1.txt를 다음과 같이 수정합니다.



그리고 git add 또는 git commit을 진행하지 않고 바로 아래 명령어를 입력합니다.


git diff


그럼 다음과 같은 결과가 출력됩니다.



위에서 git log -p 를 입력했을 때와 비슷한 내용이죠?

git diff 명령어는 현재 수정중인 파일들, 즉 add를 하지 않은 것들에 대해서 가장 최근의 버전과 비교를 하는 명령어입니다.

git diff 를 통해서 git add 및 git commit 을 하기전에 내가 수정한 코드에 대해 확인할 수 있습니다.


이렇게 해서 과거의 버전 또는 현재 수정하는 것들에 대한 비교를 진행해보았습니다.

위에서 학습한 방법들을 통해 각각의 버전들에 대한 차이점을 인지하고, 만약 프로그램에서 갑작스런 오류가 발생했을때 어떤 버전에서 잘못된 것인지 잡아낼 수 있습니다.


728x90