Git の履歴を編集する
Git を使用すると、プロジェクトまたはディレクトリの履歴を編集できます。 これは、機能ブランチに取り組んでいて、他のユーザーと 共有する前にクリーンアップして希望どおりの外観にしたい場合に便利です。 例: コミットメッセージを編集したり、同じ機能に関連する小さなコミットをまとめたり、無関係な変更を含むコミットを個別のコミットに分割したり、以前のコミットに変更を追加したりできます。
コミットメッセージを編集する
変更する必要があるのがコミットメッセージだけの場合、このコミットをプッシュする前に編集できます。
Git(ギット) ツールウィンドウ Alt+9 の ログ タブでメッセージを編集するコミットを右クリックし、コンテキストメニューから コミットメッセージの編集 を選択するか、 F2 を押します。
開いたダイアログで、新しいコミットメッセージを入力し、 OK をクリックします。
ローカルコミットを修正する
場合によっては、コミットが早すぎてファイルの追加を忘れてしまったり、プッシュしていないコミットの中にエラーがあることに気づいて、別のコミットを作成せずに修正したい場合があります。
コミットの修正 オプションを使用すると、 ステージングされた変更が選択したローカルコミットに追加されるため、これを実現できます。 結果として、2 つの異なるコミットではなく、1 つのコミットが作成されます。
コミット ツールウィンドウ Alt+0 で、ローカルコミットに追加したい変更を含む変更済みファイルを選択します。
修正 オプションを選択し、
をクリックして、変更したいローカルコミットを選択します。
コミットを修正する をクリックしてください。
以前のコミットを修正する
すでにプッシュ済みの以前のコミットに変更を追加する必要がある場合は、 フィックスアップ または スカッシュ アクションを使用することで可能です。 どちらのコマンドも ステージングされた変更を選択したコミットに追加しますが、コミットメッセージの処理方法が異なります。
スカッシュは新しいコミットメッセージを元のコミットに追加しますフィックスアップは新しいコミットメッセージを破棄し、元のコミットからのメッセージだけを残します
コミット ツールウィンドウ Alt+0 で、以前のコミットに追加する変更を含む変更されたファイルを選択します。
Git(ギット) ツールウィンドウ Alt+9 の ログ タブで、ローカルの変更で変更するコミットを右クリックし、コンテキストメニューから フィックスアップ または スカッシュイン を選択します。
変更を破棄することを選択した場合は、コミットメッセージを変更します。
コミット ボタンの矢印をクリックして コミットしてリベース を選択します。
コミットをスカッシュする
同じ機能に関連するコミットを 2 つまとめる必要がある場合、ブランチ履歴をきれいにするために 1 つにスカッシュできます。
Git(ギット) ツールウィンドウ Alt+9 の ログ タブで、1 つに結合するコミットを選択し、コンテキストメニューから コミットをスカッシュ を選択します。
開いたダイアログで、コミットメッセージを編集し(デフォルトでは、両方のコミットからのメッセージが含まれています)、 OK をクリックします。
Ctrl+Shift+K をリモートブランチへの変更をプッシュします。
コミットを削除する
変更を元に戻す追加のコミットを作成せずに、現在のブランチでプッシュされたコミットを破棄できます。
ログ ビューで破棄するコミットを選択し、コンテキストメニューから コミットの削除 を選択します。
選択した変更を抽出
すでにコミットされた変更を複数のコミットに分割する場合は、選択したファイルの変更を別のコミットに抽出できます。
Git(ギット) ツールウィンドウ Alt+9 の ログ タブで、ローカルブランチを選択し、分割するコミットを選択します。
右側の 変更されたファイル ペインで、抽出する変更を含むファイルを選択し、右クリックして、 選択した変更を別のコミットに抽出する を選択します。
開いたダイアログで、必要に応じて新しいコミットメッセージを入力します。
その結果、新しいハッシュを持つコミットが 2 つ存在することになります。