Skip to content

Squash Commits

壓縮提交(合併成一筆)

01你是不是遇到這個 / THE SYMPTOM

我這個功能做的過程中提交了一堆零碎的 commit,像「修錯字」「再修一下」「忘了存」,看起來很亂,想在合併前把它們併成一筆乾淨的提交。

↑ 如果你點頭了,你要的關鍵字就是 Squash Commits

02這是什麼 / DEFINITION

Squash 是把多個連續的 commit 壓縮合併成單一一筆提交,常在功能分支要併回主線前用來清理凌亂的中間過程,只留下一個有意義的最終提交。

03什麼時候用 / WHEN TO USE

Pull Request 要合併進 main 前、想把開發過程的瑣碎提交整理成一筆有意義的歷史時。GitHub/GitLab 上常見的「Squash and merge」就是這個。

04怎麼跟 AI 說 / HOW TO ASK

直接複製這句、貼進 Claude Code / Cursor / Copilot / ChatGPT:

幫我把這個分支最近 5 筆 commit squash 成一筆,commit 訊息我等下給你,並保留實際的程式變更不要弄丟。
05常見坑 / WATCH OUT

squash 屬於改寫歷史(透過 interactive rebase 做),同樣不要對已共用的分支做。和「merge」不同:squash 是把多筆合成一筆、不是把兩條分支接起來。最簡單的做法常是直接在 PR 介面選 Squash and merge。

06相關的詞 / RELATED