Taka blog

プログラミングとか

[Git]複数のコミットを1つに纏める

無駄なコミットが残らないように、どちらかの方法でコミットを纏めます。

rebaseを用いる方法

コミット履歴を確認する

git log

纏めたいコミットより前のコミットのハッシュ値をコピーします。2つのコミットを纏めたい場合は、上から3つ目のコミットのハッシュ値です。

リベースする

git rebase -i コミットのハッシュ値

コマンドを打つと、対象より新しいコミットが、古い順に表示されます。2つ目以降の削除したいコミットの「pick」を「s」に書き換えると、スカッシュ後に削除されます。

エディタはナノエディタを想定しています。環境によって変わるのかもしれないですけれど、VScode&Git Bashではナノエディタでした。

sに書き換えたら、「ctrl + x」→「y」→「Enter」と入力すると保存されます。その後コミットメッセージの編集画面になります。表示したくないコミットのメッセージを消すことができます。保存方法は先程と同じ流れです。

プッシュする

rebase後は、オプション「-f」を付けてpushする必要があります。


resetを用いる方法

reset --softする

直近のcommitが削除され、その変更内容はcommit前の状態になります。

git reset --soft HEAD^

新たにcommitする