Git のローカル変更を上書きする

John Wachira 2023年1月30日
  1. git pull コマンドを使用して、Git のローカル変更を上書きする
  2. Git を使用してコミットされていないローカル変更を削除する
  3. Git を使用してコミットされていないローカル変更を保持する
Git のローカル変更を上書きする

この記事では、Git の git pull コマンドを使用してローカルの変更を上書きする方法について説明します。

git pull コマンドを使用して、Git のローカル変更を上書きする

git pull コマンドは、リモートからローカルリポジトリにファイルをフェッチしてマージします。まず、git pull コマンドがファイルを上書きするためにどのように機能するかを理解する必要があります。

git pull コマンドは、次の 2つのコマンドを組み合わせたものです。

  1. git fetch コマンド
  2. 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 Wachira
John Wachira avatar John Wachira avatar

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

関連記事 - Git Pull