[CS] Git rebase/git squash



基礎とは何ですか。


従来のコミットプール方式で生成された複数のコミットメッセージは、不注意で複雑で混乱します.複数のスタッフが参加するプロジェクトでは、なおさらです.多くのブランキーが量産の提出履歴を整理しようとすると、リベートが行われる.
1) git add .
2) git commit -m "커밋 메시지 입력"
3) git rebase -i main
4) 리베이스 후 conflict 있으면 수정 진행 / 없으면 다음단계 진행
5) git add .
6) git rebase --continue
7) git push origin feature/브랜치이름 --force

スカッシュとは?


ロールバックを行うときに、git圧縮と呼ばれる複数のコミットメッセージを1つのメッセージにマージします.
pick 커밋메시지 ex1 Task 1
pick 커밋메시지 ex1 Task 2
pick 커밋메시지 ex1 Task 3

# Rebase nnnn..nnnn onto nnnnn
#
# Commands:
#  p, pick = use commit
#  r, reword = use commit, but edit the commit message
#  e, edit = use commit, but stop for amending
#  s, squash = use commit, but meld into previous commit
#  f, fixup = like "squash", but discard this commit's log message
#  x, exec = run command (the rest of the line) using shell
#
# 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
履歴をコミットした1つの上端メッセージのみがpickの状態で、残りはsquashまたはsに変更されました.これをスカッシュと言います.
pick 22222 Task 1
s 11111 Task 2
s 33333 Task 3
その後pushを行う場合はforce(-f)オプションを追加してpushを行う必要があります.このようにすると襟元で別の分岐と思われるので、一般的にpushは適用されません.