티스토리 뷰
안녕하세요.
Commit 합치는 방법을 다양하게 확인해보겠습니다.
Commit을 합치는 이유는 Commit History를 단순화하는 것도 있지만 로컬상에서 step by step으로 단계적으로 Commit을 한 뒤 하나의 Commit으로 합치고 싶을 때 사용할 수 있습니다.
그럼 여러 방법으로 Commit을 합치는 방법을 알아볼게요.
1. GitKraken으로 합치는 방법
두개의 Commit을 GitKraken으로 합치는 방법은 상당히 쉽습니다.
두 개의 Commit History를 선택한 후 오른쪽 버튼을 눌러 Squash 2 commits를 선택합니다.
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를 생성하여 테스트 한 뒤 실적으로 적용하는 것을 추천 드립니다.
'Git' 카테고리의 다른 글
Git Merge와 Rebase의 차이, 아름다운고 깔끔한 Git History 만들기. (6) | 2020.01.17 |
---|
- Total
- Today
- Yesterday
- numpy
- 퍼셉트론
- LeetCode 30일 챌린지
- 30 Day LeetCode Challenge
- 파이썬 numpy
- git
- 노드
- 넘파이
- 리엑트
- react
- React 프로젝트 생성
- 파이썬
- 지도학습
- Python
- vscode
- LeetCode 풀이
- GPT서비스
- Java
- k8s metrics-server running
- Node
- LeetCode 알고리즘 공부
- k8s metrics-server
- Java leetcode
- 에라토스테네스
- LeetCode 5월 챌린지
- CHATGOT
- Component
- 버츄얼스튜디오코드
- 머신러닝
- GPTGOT
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |