[깃, 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)
먼저, 위에서 보이는 부분과 같은 경우의 Merge가 가장 많이 발생합니다. 물론 이 과정에서 파일간의 conflict가 많이 발생합니다. 하지만, 여기에서는 이 conflict에 대해서는 이야기는 하지 않고, conflict이 없다는 전제로 이야기를 하겠습니다. 위와 같은 그림의 비슷한 예시로 만들어서 한번 살펴보겠습니다.
먼저, 하나의 폴더를 (novelExample1) 만들고, git을 초기화 하겠습니다.
$ mkdir novelExample1
$ cd novelExample1
$ git init
위의 명령어를 바탕으로 실행을 하겠습니다.
그리고, 나서, 파일을 하나 만들어서 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"
그리고, switch -c 옵션을 통해서 branch(브랜치)를 생성하면서 전환하도록 하겠습니다.
$ git switch -c "merge_B"
위의 명령어를 통해서, 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"
그리고 나서, 다시 한번 master로 전환해서, 파일을 하나 추가해보도록 하겠습니다.
$ git switch master
$ git touch master3.txt
$ git add master3.txt
$ git commit -m "add master3"
위의 명령어를 진행하겠습니다.
그러면, 여기에서 master에서 다음 명령을 통해서 merge를 진행해보도록 하겠습니다.
$ git merge merge_B
위의 명령어를 실행하면 다음과 같은 화면이 나타납니다.
그리고 나서, 여기에서 commit가 같이 메시지를 입력할 수 있게 현재 기본 설정되어 있는 editor 창이 나타납니다.
여기에서 상기 화면에서 저장하고 종료하시면 다음과 같은 화면이 나타날 것입니다.
이와 같은 화면으로 merge가 진행됨을 알수 있습니다. 그럼 이 부분을 git log를 통해서 살펴보겠습니다.
위에서 보이는 바와 같이 Merge가 된 것을 알 수 있습니다. 이 부분 또한 commit으로 생성이 됩니다. 그러면, 이 부분을 gitKraken 을 통해서 한번 살펴보겠습니다.
이와 같은 방식으로 Merge를 commit이 생성이 됩니다.
[깃, Git] GitKraken 다운로드 및 설치하기(with repository)
이번 포스팅에서는 [깃, Git]Merge commit 생성되는 경우라는 주제로 포스팅을 해봤습니다. 실제, Fast-Forward 보다는 이와 같이 Commit이 생성되는 경우가 훨씬 많습니다. 이 부분을 바탕으로, 다양한 경우가 발생할 수 있는 데, 그중 하나가 바로 merge시에 충돌이 발생하는 경우 입니다. 이 부분에 대해서는 다음 포스팅을 통해서 이야기를 해보도록 하겠습니다.