Git のローカル変更を上書きする
この記事では、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
と非常によく似ています。
John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.
LinkedIn