HOWTO · Git

Git プルを元に戻す

git pull コマンドの効果を元に戻すさまざまな方法。

この記事では、git pull コマンドの効果を元に戻す方法について説明します。 git pull コマンドによってリポジトリ内のファイルが変更されたが、それらを以前の状態に復元したい場合があります。

この記事では、リポジトリを元に戻す手順について説明します。

Git プルを元に戻す

git pull コマンドは、git fetch コマンドと git merge Fetch_HEAD コマンドを組み合わせたものです。 リモート リポジトリから変更を取得し、現在のローカル ブランチにマージします。

リモート ブランチの先端にあるものはすべて、ローカル ブランチにマージされます。

git log --oneline コマンドを実行すると、リモート リポジトリからの新しいコミットが表示されます。 この時点で、リポジトリは HEAD にあります。

リポジトリを HEAD~1 にロールバックする必要があります。 親は、リモート リポジトリからの新しいコミットをコミットします。 これにはいくつかの方法があります。

以下に示すように、git reset コマンドを使用できます。

$ git reset --hard HEAD~1

git reset --hard コマンドは、リポジトリ内のコミットされていない変更をすべて破棄します。

親コミットの SHA-1 を使用することもできます。 例を見てみましょう。

git pull コマンドを実行した後のリポジトリのコミット履歴は次のとおりです。

$ git log --oneline
3b65c8e Update README.md
16b997a Update LICENSE.md

SHA-1 を使用して親コミットに移動するには、次を実行します。

$ git reset --hard 16b997a

特定の時点にリセットすることもできます。 20 分前に git pull を実行した場合は、以下のコマンドを実行して古いバージョンのリポジトリを復元できます。

$ git reset --hard master@{"20 minutes ago"}

リモート リポジトリから変更をプルした後、git reset --hard コマンドを使用してリポジトリを以前のバージョンに戻すことができます。 このコマンドは変更も破棄するため、コミットされていない作業は隠しておきます。