HOWTO · Git
Git のローカル変更を上書きする
この記事では、Git の gitpull コマンドを使用してローカルの変更を上書きするさまざまな方法について説明します。
このページの内容
この記事では、Git の git pull コマンドを使用してローカルの変更を上書きする方法について説明します。
git pull コマンドを使用して、Git のローカル変更を上書きする
git pull コマンドは、リモートからローカルリポジトリにファイルをフェッチしてマージします。まず、git pull コマンドがファイルを上書きするためにどのように機能するかを理解する必要があります。
git pull コマンドは、次の 2つのコマンドを組み合わせたものです。
git fetchコマンドgit merge origin/Branchコマンド
git pull コマンドを実行すると、Git はクローン元のリポジトリ origin から変更をフェッチし、ローカルリポジトリの現在のブランチとマージします。
コミットされていない変更がない場合にのみ、Git は git pull コマンドを正常に実行します。インデックスにコミットされていない変更がある場合、エラーが発生する可能性があります。
Git を使用してコミットされていないローカル変更を削除する
インデックスにコミットされていない変更が必要ない場合は、以下のコンテキストで git reset コマンドを使用してください。
git fetch
git reset --hard HEAD
git merge origin/$CURRENT_BRANCH
git reset --hard HEAD は、コミットされていない変更を破棄して、git merge コマンドを実行できるようにします。
Git には、コマンドラインで@{u} 引数を使用して、フェッチ元のブランチを指定したくない人のためのショートカットがあります。
git fetch
git reset --hard HEAD
git merge '@{u}'
Git を使用してコミットされていないローカル変更を保持する
コミットされていない変更を削除したくない場合は、コミットするか、隠しておくことができます。コミットを隠しておくと、それらはインデックスから離れてしまい、後で復元できます。
変更はまだ Git にありますが、表示されません。リポジトリからプルする前に、git stash コマンドを実行します。
git stash pop コマンドを使用して、隠しておいた変更を元に戻すことができます。git stash pop コマンドは変更を適用し、リストから stash を削除することに注意してください。
git fetch
git stash
git merge '@{u}'
git stash pop
上記の方法が機能しない場合は、常に git pull --force コマンドがあります。
このコマンドを使用して、送信元ブランチと受信者ブランチを指定する必要があります。これは、git fetch --force と非常によく似ています。