paint-brush
Git でリモートからコミットを削除する方法@timmouskhelichvili
309,808 測定値
309,808 測定値

Git でリモートからコミットを削除する方法

Tim Mouskhelichvili2m2022/05/31
Read on Terminal Reader
Read this story w/o Javascript

長すぎる; 読むには

リモートからコミットを削除するには、コミットが上から連続している場合は git restart コマンドを使用し、それ以外の場合は対話型リベースを使用できます。ローカルでコミットを削除した後、force オプションを指定した git Push コマンドを使用して、それらの変更をリモートにプッシュします。
featured image - Git でリモートからコミットを削除する方法
Tim Mouskhelichvili HackerNoon profile picture
0-item
1-item

定期的に Git を使用する開発者にとって、履歴の操作は非常に一般的です。実際、開発者は多くの場合、Git 履歴からコミットを削除する必要があります。幸いなことに、Git にはこの操作を可能にする多くのコマンドが用意されています。


さあ、いきましょう😎。

ステップ 0 - 準備

Git 履歴を操作する前に、 git statusコマンドを使用して、作業ディレクトリに変更がないことを確認してください。

ステップ 1 - コミットをローカルで削除する

リモート サーバーからコミットを削除するには、まずローカル履歴からコミットを削除する必要があります。

1.1 上から連続コミットする場合

削除するコミットがコミット履歴の先頭にある場合は、 HEADオブジェクトと削除するコミットの数を指定してgit reset --hardコマンドを使用します。


 git reset --hard HEAD~1

このコマンドは最新のコミットを削除します。


 git reset --hard HEAD~3

このコマンドは、最新の 3 つのコミットを削除します。


次のように、コミットのハッシュを使用して特定のコミットまでを削除することもできます。

 git reset --hard <hash>

1.2 非連続コミットの場合

ただし、連続しないコミットを削除したい場合は、対話型リベースを使用する必要があります。


  • [ ] git reflogコマンドを使用して、削除するすべてのコミットを含む最後のコミット ハッシュを見つけます。
  • [ ] git rebase -i <hash>で対話型リベースを開始します。
  • [ ]編集画面で、削除するコミット行を見つけて削除します。
  • [ ]保存して終了します (競合を解決する必要がある場合があります)
  • [] git rebase --continue使用して対話型リベースを終了するか、リベースを中止して最初からやり直します。

ステップ 2 - リモートからコミットを削除する

リモートからコミットを削除するには、 git Pushコマンドを使用してローカルの変更をリモートにプッシュする必要があります。


 git push origin HEAD --force


ローカル履歴はリモート履歴とは異なるため、 forceオプションを使用する必要があります。

最終的な考え

ご覧のとおり、Git を使用すると、リモート サーバーからコミットを簡単に削除できます。


ただし、注意しないと進行状況が失われる可能性があるため、 forceオプションを指定してgit pushコマンドを使用する場合は注意が必要です。


読んでくれてありがとう!