Appia의 IT세상

[깃, Git] Git diff 특정 branch(브랜치) / 특정 commit 비교하기 본문

Development/GIT

[깃, Git] Git diff 특정 branch(브랜치) / 특정 commit 비교하기

Appia 2023. 11. 30. 07:42
반응형

[깃, Git] Git diff 특정 branch(브랜치) / 특정 commit 비교하기

[깃, Git] Git diff 특정 branch(브랜치) / 특정 commit 비교하기

 

앞선 포스팅에서, git diff를 이용하여, 특정 파일의 변경사항을 확인하는 방법에 대해서 확인을 하였습니다. 아마도, 많은 분들은 이 부분에 대해서 인지하고 있었을 것이고 매우 유용하게 사용할 것이라고 생각합니다. 그러면 이 번에는 git에서 가장 핵심적인 요소인 branch(브랜치)간의 차이점와 commit(커밋)간 차이점을 비교하는 방법에 대해서 이야기를 해보고자 합니다.

[깃, Git] Git diff 특정 파일의 변경사항 확인하기

 

[깃, Git] Git diff 특정 파일의 변경사항 확인하기

[깃, Git] Git diff 특정 파일의 변경사항 확인하기 이전 포스팅에서, git diff에서 전체, staged에 등록된 것이나, 아니면, 등록되지 않은 항목에 대한 차이를 확인하는 방법에 대해서 포스팅을 해봤습

appia.tistory.com

그럼 이번 포스팅에서는 총 2가지 관점에서 접근을 해보도록 하겠습니다.

 

1.     branch(브랜치) 간의 차이점 확인

2.     commit(커밋) 간의 차이점 확인

 

Branch 간의 차이점 확인

브랜치 사이에서 많은 파일이 생성될 수도 있고, 삭제될 수도 있습니다. 물론, 이 부분은 commit에서도 동일합니다. 그런 관점에서 한번 살펴보도록 하겠습니다.

 

먼저, branch간의 비교를 하기 위해서는 다음 명령어를 입력해주시길 바랍니다.

 

git diff a_branch..b_branch
git diff a_branch b_branch

 

물론, 위에서 직관적으로 보기 위해서  branch간의 식별하기 위한 문자를 ‘..’으로 나열하였지만  부분을 공백으로 작성하셔도 됩니다. (실제 작업하실때에는 ..보다는 공백을 더욱 많이 사용합니다.) 그러면 다음 부분에 대해서 간단한 예제를 통해서 다음 부분에 대해서 살펴보겠습니다.

 

먼저, 앞선 포스팅에서 사용한 예제를 그대로 활용할 예정입니다. 저는 여기에서, 일단, 다음 명령어를 통해서 target1이라는 branch(브랜치)를 생성해보도록 하겠습니다. (그런 후에 자동으로 target1으로 branch 전환해줍니다.)

$ git switch -c target1

그러면 다음과 같은 화면이 나타날 것입니다. 저 같은 경우에, 파일 수정을 진행하기 위해서, 윈도우 탐색기를 열 수 있는 "start . "명령어 또한 실행을 시켰습니다. 

예제 생성을 위한 branch(브랜치 생성)

 

먼저, 여기에서, 최초 number.txt 라는 파일의 열어보도록 하겠습니다. 

수정 후에 number.txt

위에서 보이는 바와 같이 몇몇 숫자가 빠져 있는 것을 알 수 있습니다. 여기에서 저는 5~7열을 삭제하겠습니다. 

수정 후에 number.txt

 

그리고 나서 위에서 수정한 항목들에 대해서 git add 및 git commit을 진행해줍니다. 

수정한 파일에 대한 git add 및 git commit 

 

그리고 나서 약간의 변화를 더 주기 위해서, 다시 다음명령어를 통해서 mster 브랜치로 전화을 하도록 하겠습니다. 

$ git switch master

 

그리고 touch명령어를 이용해서, master_h.txt파일을 하나 생성하도록 하겠습니다. 

$ touch master_h.txt

예제 파일 생성

 

위에서 생성한 master_h.txt 파일을 다음과 같이 수정을 하였습니다. (변경점만 확인하면 되기 떄문에 많은 부분을 입력하기에 앞서, 변경점만 확인하는 목적이기 때문에 간단한 문구만 입력하였습니다.)

master branch(브랜치)파일 수정

그리고 나서, number.txt 부분에서도 마지막에 있는 "ten"이라는 글자을 삭제하였습니다. 

master branch(브랜치)파일 수정2

 

위에까지 수정을 하고 나서, 수정한 부분에 대해서 다음 명령어를 통해서 확인하였습니다. 

$ git status

위의 명령어를 실행하면 다음과 같은 결과를 확인할 수 있습니다. 

git status을 통한 branch 상황 확인

그리고 위에 파일을 git add 및 git commit을 진행하도록 하겠습니다. 그러면 이제는 master와 target1 branch을 비교해보도록 하겠습니다. 

git diff master..target1

위의 명령어를 실행하면 다음과 같은 결과 가 나타나는 것을 확인할 수 있습니다. 

git diff 결과 (a = master, b = target1)

위에서 보이시는 바와 같이 a 기준은 앞서 입력한 master branch(브랜치)이고, b는 나중에 입력한 target1입니다. 그러면 반대로 입력을 해보도록 하겠습니다. 

git diff 결과 (a = target1 , b = master)

이 부분에 대해서 결과를 읽는 방법은 이전 포스팅을 참조하시면 될것입니다.(하단에 링크 삽입) 

 

commit(커밋) 간의 차이점 확인

물론, 위에서 본 branch(브랜치)간의 비교점을 확인하는 것은 매우 중요합니다. 하지만, 이보다 각 commit 사이에서의 차이점도 비교가 필요로 합니다. 그러면 이제는 commit간의 비교하는 방법에 대해서 이야기를 해보겠습니다. 먼저 다음 명령어를 통해서 비교를 할 수 있습니다. 

git diff commit_hash1..commit_hash2

 

 

먼저 다음 명령어를 통해서, commit 기록을 살펴보겠습니다. 

$ git log --oneline

 

commit 기록 확인

위의 출력된 앞에 헤시를 통해서 다음과 같이 명령어를 입력할 수 있습니다. 

 git diff 603807c..651431f

 

commit간 비교 결과

위에서와 같이 각 commit 사이에서의 차이점을 비교할 수 있습니다. 

 

이번 포스팅에서는 [깃, Git] Git diff 특정 branch(브랜치) / 특정 commit 비교하기라는 주제로 포스팅을 했습니다. 이번 까지 해서, diff에 대해서는 대부분 다루어봤습니다. gitkraken을 통해서, 해당 부분에 대해서 gui 상으로 차이점을 어떻게 보는지에 대해서도 블로그 포스팅을 진행해볼 요량입니다. 혹 궁금하신 점이나 문의 사항이 있으시면 언제든지 댓글 및 방명록에 글 남겨주시길 바랍니다. 

반응형
Comments