# GitHub Desktop でのコミットのスカッシュ

GitHub Desktop を使用して、ブランチの履歴内のコミットをスカッシュできます。

## コミットのスカッシュについて

ブランチの履歴にある複数のコミットをスカッシュして1つのコミットに結合できます。 これにより、リポジトリの履歴が、読みやすく、わかりやすくなります。

## コミットの圧縮

1. GitHub Desktop で、**<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-git-branch" aria-label="git-branch" role="img"><path d="M9.5 3.25a2.25 2.25 0 1 1 3 2.122V6A2.5 2.5 0 0 1 10 8.5H6a1 1 0 0 0-1 1v1.128a2.251 2.251 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.5 0v1.836A2.493 2.493 0 0 1 6 7h4a1 1 0 0 0 1-1v-.628A2.25 2.25 0 0 1 9.5 3.25Zm-6 0a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Zm8.25-.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM4.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Z"></path></svg> \[Current Branch]** をクリックします。

   ![リポジトリ バーのスクリーンショット。 ドロップダウン メニューを示す下向き矢印が付いた \[Current Branch\] というボタンがオレンジ色の枠線で囲まれています。](/assets/images/help/desktop/current-branch-menu.png)

2. ブランチのリストで、スカッシュしたいコミットがあるブランチを選びます。

3. 左サイドバーにある **\[履歴]** をクリックします。

   ![サイドバーの \[履歴\] タブのスクリーンショット。 コミット一覧の上にある \[履歴\] というタブ ボタンがオレンジ色の枠線で強調表示されています。](/assets/images/help/desktop/history-tab-in-commit-sidebar.png)

4. スカッシュするコミットを選び、結合先のコミットにドロップします。

   <div class="ghd-tool mac">

<kbd>Command</kbd> キーまたは <kbd>Shift</kbd> キーを使って、1 つのコミットを選んだり、複数のコミットを選んだりすることができます。

   </div>

   <div class="ghd-tool windows">

<kbd>Ctrl</kbd> キーまたは <kbd>Shift</kbd> キーを使って、1 つのコミットを選んだり、複数のコミットを選んだりすることができます。

   </div>

![\[履歴\] タブのコミットの一覧のスクリーンショット。カーソルは青色で強調表示されたコミットの上にあります。 ホバーオーバー ボックスに "2 件のコミットをスカッシュ" と表示されています。](/assets/images/help/desktop/squash-drag-and-drop.png)

1. 新しいコミットのコミット メッセージを変更します。 スカッシュするために選んだコミットのコミット メッセージは、 **"概要"** フィールドと **"説明"** フィールドに自動入力されます。
2. **スカッシュ コミット**をクリックします。

## コミットをスカッシュするときのエラー メッセージ

コミットをスカッシュするときに、次のような通知やエラー メッセージが表示されることがあります。

* 通知は、ブランチに対してリクエストされている変更で、リモート ブランチを更新するために強制プッシュが必要となることを示しています。 強制的にプッシュすると、ブランチのコミット履歴が変更され、そのブランチで作業している他のコラボレーターが影響を受けます。
  **\[スカッシュ開始]** を選んでスカッシュを開始し、その後 **\[Origin に強制プッシュ]** をクリックして変更をプッシュします。
* エラーメッセージには、スカッシュされたコミット間にマージコミットがあるため、スカッシュが失敗したと記載されています。
* 現在のブランチにコミットされていない変更が存在していることを示す通知が表示されます。
  **\[変更を一時退避して続ける]** を選び、変更を保存して続けるか、 **\[閉じる]** を選び、メッセージを閉じて変更をコミットします。 コミットされていない変更がなくなったら、コミットをスカッシュできます。

## 参考資料

* [GitHub Desktop 内でコミットを管理するオプション](/ja/desktop/managing-commits/options-for-managing-commits-in-github-desktop)