Git でのローカル ファイルの変更を無視する
この記事では、リモート リポジトリから更新するときに、Git でローカル ファイルの変更を無視する方法を示します。 git pull
を実行しようとすると、Git が次のようなエラーを表示することがあります。
Updating 0376abc..1chd7a5 error: Your local changes to the following files would be overwritten by merge: README.md Please, commit your changes or stash them before you can merge. Aborting
では、どうすればよいのでしょうか。
Git でのローカル ファイルの変更を無視する
簡単に言えば、上記のエラー メッセージは、マージ時の競合を避けるために、コミットされていない変更を削除または保存する必要があることを示しています。 これは通常、git pull
コマンドがコミットされていない変更の場所にファイルを作成する場合に当てはまります。
この問題を解決するには、インデックスをクリーンアップする必要があります。 以下に示すように、git checkout
コマンドを使用して、追跡されたファイルを削除できます。
この場合、README.md
ファイルが競合を引き起こす可能性があります。 インデックスからファイルを削除するには、次を実行します。
$ git checkout README.md
これにより、段階的な変更が破棄され、README.md
ファイルが最後にコミットされた状態に戻ります。 競合を引き起こす可能性のある追跡されていないファイルがある場合は、以下に示すように、git clean
コマンドを使用できます。
git clean -fd
追跡されていないすべてのファイルとフォルダーがインデックスから削除されます。 私たちのリポジトリは、git pull
の準備ができました。
インデックスからファイルを削除することについて話しました。 上記の方法では変更が破棄されることに注意してください。
コミットされていない変更を保持したい場合はどうすればよいでしょうか?
変更を破棄せずにインデックスをクリーンアップする最も簡単な方法は、git stash
コマンドを使用することです。 以下に示すコマンドを使用して、追跡された変更を隠しておくことができます。
$ git stash
インデックスに追跡されていないファイルがある場合は、次を実行します。
$ git stash -u
上記のコマンドは、追跡された変更と追跡されていない変更の両方を隠します。
以下に示すように、git pull
コマンドを実行して、隠した変更を適用できるようになりました。
$ git stash pop
上記のコマンドは、隠した変更をポップして、インデックスに適用します。
簡単に言えば、git pull
リクエストでは、インデックスがクリーンである必要があります。 コミットされていない変更を削除するか、リモートから更新する前に隠しておくことができます。
これにより、コミットされていない変更とのマージの競合が発生しなくなります。
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 Checkout
- Git Checkout --Track Origin/Branch と Git Checkout -B Branch Origin/Branch の違い
- Git チェックアウトと Git クローンの違い
- Git のチェックアウトタグ
- Git スイッチとチェックアウトの違い
- Git で単一ファイルへのローカル変更を元に戻す