Appia의 IT세상

[깃, Git] Git Merge commit 생성되는 경우 본문

IT_OS_ETC../[OS]Windows10&11

[깃, Git] Git Merge commit 생성되는 경우

Appia 2023. 11. 23. 07:41
반응형

[깃, Git] Git Merge commit 생성되는 경우 

[깃, Git] Git Merge commit 생성되는 경우

 

이전 포스팅에서 우리는 Git Merge에 대해서 이야기를 했습니다. 여기에서, Fast-Forward Merge를 기반으로 Merge에 대해서 이야기를 했었습니다. 물론, 앞선 포스팅에서는 Fast-Forward에 대해서 이야기 했지만, 실제 프로젝트를 진행할 경우 Fast-Forward Merge가 아닌 경우가 더욱 많습니다. 이번 포스팅에서는 그런 경우에 대해서 이야기를 해보고자 합니다. 

 

[깃, Git]Git Merge란? (Feat. Fast-Forward Merge)

 

[깃, Git]Git Merge란? (Feat. Fast-Forward Merge)

[깃, Git]Git Merge란? (Feat. Fast-Forwarding Merge) 앞선 포스팅들에서는 git branch(깃 브랜치)에 대해서 살펴봤습니다. 의미아, 보기, 생성하기, 삭제하기등을 여러 포스팅에 걸쳐서 이야기를 해봤습니다.

appia.tistory.com

 

일반적인 Merge의 경우

먼저, 위에서 보이는 부분과 같은 경우의 Merge가 가장 많이 발생합니다. 물론 이 과정에서 파일간의 conflict가 많이 발생합니다. 하지만, 여기에서는 이 conflict에 대해서는 이야기는 하지 않고, conflict이 없다는 전제로 이야기를 하겠습니다. 위와 같은 그림의 비슷한 예시로 만들어서 한번 살펴보겠습니다. 

 

먼저, 하나의 폴더를 (novelExample1) 만들고, git을 초기화 하겠습니다. 

$ mkdir novelExample1
$ cd novelExample1
$ git init

위의 명령어를 바탕으로 실행을 하겠습니다. 

예시를 위한 repository 초기화

 

그리고, 나서, 파일을 하나 만들어서 commit을 하도록 하겠습니다. 이러한 과정을 한번 더 해서 총 2개의 commit을 생성해보도록 하겠습니다. 

# commit 한 개 생성
$ touch master1.txt
$ git add master1.txt
$ git commit -m " add 1 file"

# 두 번째 commit 생성
$ touch master2.txt
$ git add master2.txt
$ git commit -m " add 2 file"

예제를 위한 commit 생성 

그리고, switch -c 옵션을 통해서 branch(브랜치)를 생성하면서 전환하도록 하겠습니다. 

$ git switch -c "merge_B"

위의 명령어를 통해서, branch(브랜치)를 생성하면서 전환하도록 하겠습니다. 

branch(브랜치) 생성 & 전환

추가로 전환된 branch(브랜치)에서 파일을 하나 생성해서, commit해보도록 하겠습니다. 이러한 과정을 통해서 총 2개의 commit을 생성해보겠습니다. 

# commit 한 개 생성
$ touch master_b1.txt
$ git add master_b1.txt
$ git commit -m " merge sample1"

# 두 번째 commit 생성
$ touch master_b2.txt
$ git add master_b2.txt
$ git commit -m " merge sample2"

예제를 위한 commit 생성 - branch(브랜치)

그리고 나서, 다시 한번 master로 전환해서, 파일을 하나 추가해보도록 하겠습니다. 

$ git switch master
$ git touch master3.txt
$ git add master3.txt
$ git commit -m "add master3"

위의 명령어를 진행하겠습니다. 

추가 commit 후 현재 상태 

그러면, 여기에서 master에서 다음 명령을 통해서 merge를 진행해보도록 하겠습니다. 

$ git merge merge_B

위의 명령어를 실행하면 다음과 같은 화면이 나타납니다. 

git merge 실행 결과

그리고 나서, 여기에서 commit가 같이 메시지를 입력할 수 있게 현재 기본 설정되어 있는 editor 창이 나타납니다. 

merge 메시지 입력 화면

여기에서 상기 화면에서 저장하고 종료하시면 다음과 같은 화면이 나타날 것입니다. 

git merge 결과

이와 같은 화면으로 merge가 진행됨을 알수 있습니다. 그럼 이 부분을 git log를 통해서 살펴보겠습니다. 

merge 이후 git log 결과

위에서 보이는 바와 같이 Merge가 된 것을 알 수 있습니다. 이 부분 또한 commit으로 생성이 됩니다. 그러면, 이 부분을 gitKraken 을 통해서 한번 살펴보겠습니다. 

gitKraken으로 본 Merge 화면

이와 같은 방식으로 Merge를 commit이 생성이 됩니다. 

[깃, Git] GitKraken 다운로드 및 설치하기(with repository)

 

[깃, Git] GitKraken 다운로드 및 설치하기(with repository)

[깃, Git] GitKraken 다운로드 및 설치하기(with repository) 이전에 소스트리(SourceTree)와 포크(Fork)을 다운로드 하고 설치하는 부분에 대해서 포스팅을 한 적이 있습니다. 물론, 소스트리(SourceTree)와 포크(

appia.tistory.com

이번 포스팅에서는 [깃, Git]Merge commit 생성되는 경우라는 주제로 포스팅을 해봤습니다. 실제, Fast-Forward 보다는 이와 같이 Commit이 생성되는 경우가 훨씬 많습니다. 이 부분을 바탕으로, 다양한 경우가 발생할 수 있는 데, 그중 하나가 바로 merge시에 충돌이 발생하는 경우 입니다. 이 부분에 대해서는 다음 포스팅을 통해서 이야기를 해보도록 하겠습니다. 

반응형
Comments