Jan 01, 1970
定期的に Git を使用する開発者にとって、履歴の操作は非常に一般的です。実際、開発者は多くの場合、Git 履歴からコミットを削除する必要があります。幸いなことに、Git にはこの操作を可能にする多くのコマンドが用意されています。
さあ、いきましょう😎。
Git 履歴を操作する前に、 git statusコマンドを使用して、作業ディレクトリに変更がないことを確認してください。
リモート サーバーからコミットを削除するには、まずローカル履歴からコミットを削除する必要があります。
削除するコミットがコミット履歴の先頭にある場合は、 HEAD
オブジェクトと削除するコミットの数を指定してgit reset --hard
コマンドを使用します。
git reset --hard HEAD~1
このコマンドは最新のコミットを削除します。
git reset --hard HEAD~3
このコマンドは、最新の 3 つのコミットを削除します。
次のように、コミットのハッシュを使用して特定のコミットまでを削除することもできます。
git reset --hard <hash>
ただし、連続しないコミットを削除したい場合は、対話型リベースを使用する必要があります。
git reflog
コマンドを使用して、削除するすべてのコミットを含む最後のコミット ハッシュを見つけます。git rebase -i <hash>
で対話型リベースを開始します。git rebase --continue
使用して対話型リベースを終了するか、リベースを中止して最初からやり直します。リモートからコミットを削除するには、 git Pushコマンドを使用してローカルの変更をリモートにプッシュする必要があります。
git push origin HEAD --force
ローカル履歴はリモート履歴とは異なるため、 force
オプションを使用する必要があります。
ご覧のとおり、Git を使用すると、リモート サーバーからコミットを簡単に削除できます。
ただし、注意しないと進行状況が失われる可能性があるため、 force
オプションを指定してgit push
コマンドを使用する場合は注意が必要です。
読んでくれてありがとう!