티스토리 뷰

반응형

안녕하세요.

Commit 합치는 방법을 다양하게 확인해보겠습니다.

 

Commit을 합치는 이유는 Commit History를 단순화하는 것도 있지만 로컬상에서 step by step으로 단계적으로 Commit을 한 뒤 하나의 Commit으로 합치고 싶을 때 사용할 수 있습니다.

 

그럼 여러 방법으로 Commit을 합치는 방법을 알아볼게요.

 

1. GitKraken으로 합치는 방법

두개의 Commit을 GitKraken으로 합치는 방법은 상당히 쉽습니다.

두 개의 Commit History를 선택한 후 오른쪽 버튼을 눌러 Squash 2 commits를 선택합니다.

 

 

Git Kraken Commit History 합치기

Squash 2 commits를 누르면 바로 합쳐지는 것을 확인할 수 있습니다.

하나의 Commit으로 합쳐졌고 Commit Message는 두개에 작성했던 내용이 보이는 것을 확인할 수 있습니다.

이때 Commit History를 오른쪽 버튼을 누른 뒤 Edit commit message를 선택하여 message를 정리해줍니다.

 

이렇게 Commit을 합쳐주면 Git History가 정리가 된다는 것을 확인 할 수 있습니다.

 

2. Command로 합치는 방법

이번엔 명령어로 Commit을 합치는 방법을 알아보겠습니다.

 

두개의 Commit이 있을 때 아래와 같이 Command에 명령어를 실행합니다.

git rebase -i HEAD~2

HEAD~2의 뒤 숫자는 합치고자 하는 Commit의 개수입니다.

pick 51797d6 Commit 1
pick b2607a1 Commit 2

# Rebase bd3e998..b2607a1 onto bd3e998 (2 commands)
#
# Commands:
# p, pick <commit> = use commit
# r, reword <commit> = use commit, but edit the commit message
# e, edit <commit> = use commit, but stop for amending
# s, squash <commit> = use commit, but meld into previous commit
# f, fixup <commit> = like "squash", but discard this commit's log message
# x, exec <command> = run command (the rest of the line) using shell
# b, break = stop here (continue rebase later with 'git rebase --continue')
# d, drop <commit> = remove commit
# l, label <label> = label current HEAD with a name
# t, reset <label> = reset HEAD to a label
# m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]
# .       create a merge commit using the original merge commit's
# .       message (or the oneline, if no original merge commit was
# .       specified). Use -c <commit> to reword the commit message.
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#
# Note that empty commits are commented out

명령어를 살펴본 뒤 상단에 있는 Command를 용도에 맞게 수정합니다.

s는 Squash로 다른 commit에 합쳐진다는 의미이며 pick 은 해당 commit을 사용한다는 의미입니다.

i를 눌러 상단의 메세지를 아래와 같이 수정합니다.

pick 64053ce Commit1
squash e3cad72 Commit2

그런 뒤 :wq로 저장하세요

 This is a combination of 2 commits.
# This is the 1st commit message:

Commit1

# This is the commit message #2:

Commit2

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# Date:      Thu Jan 23 00:12:33 2020 +0900
#
# interactive rebase in progress; onto bd3e998
# Last commands done (2 commands done):
#    pick 64053ce Commit1
#    squash e3cad72 Commit2
# No commands remaining.
# You are currently rebasing branch 'CommitTest' on 'bd3e998'.
#
# Changes to be committed:
#       modified:   src/components/lotto/LottoRandomContents.js
#       modified:   src/components/lotto/LottoRandomHeader.css

 

메시지를 vi를 사용하여 Commit Message를 수정할 수 있습니다.

하지만 변경하지 않으려면 바로 :wq를 눌러 저장합니다.

 

저장하면 바로 Commit이 합쳐지는 것을 확인할 수 있는데

Git Kraken으로 확인하면 아래와 같이 Commit이 합치는 것을 확인하 수 있습니다.

 

Git Commit을 합치는 방법은 Command보다는 툴을 사용하는 것이 쉽습니다.

두 개 중 편한 방법으로 진행하면 좋습니다.

 

꼭 테스트 branch를 생성하여  테스트 한 뒤 실적으로 적용하는 것을 추천 드립니다.

 

 

반응형
댓글