開発環境

> git --version
git version 2.33.1

git merge –squash {BRANCH_NAME}

現在のブランチと指定したブランチとの差分である複数 commit を1つのコミットにまとめる。

前提

> git log --pretty=oneline
{COMMIT_HASH_E} (HEAD -> feature/#1) e
{COMMIT_HASH_D} d
{COMMIT_HASH_C} c
{COMMIT_HASH_B} (develop) b
{COMMIT_HASH_A} a

やること

feature/#1 ブランチのコミット(c, d, e)を一つのコミットにまとめて、develop にマージ

やってみる

> git branch --contains
* develop

> git merge --squash feature/#1
Updating {COMMIT_HASH_B}..{COMMIT_HASH_E}
Fast-forward
Squash commit -- not updating HEAD
 text.txt | 4 ++++
 1 file changed, 4 insertions(+)

確認

> git log --pretty=oneline
{COMMIT_HASH__NEW} (HEAD -> develop, origin/develop) Squashed commit of the following:
{COMMIT_HASH_B} b
{COMMIT_HASH_A} a

無事まとまったコミットがマージされたことが分かった。
コミットが綺麗になって良い。

参考