Git でのローカル ファイルの変更を無視する

John Wachira 2023年6月20日
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 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 Checkout

関連記事 - Git Clean