【Git】error: Your local changes to the following files would be overwritten by checkout”の解決方法

投稿日:2023/06/02 最終更新日:2023/06/02

【Git】error: Your local changes to the following files would be overwritten by checkout”の解決方法

Gitは強力な分散型バージョン管理システムであり、複数の人々が同じリポジトリで作業する際に効果的な協調を可能にします。

しかし、ブランチを切り替えようとする際に、変更が競合しているというエラーメッセージ “error: Your local changes to the following files would be overwritten by checkout” が表示されることがあります。

この記事では、このエラーの解決方法について詳しく説明します。

変更内容を一時的に保存する

変更内容を一時的に保存する方法はいくつかあります。

以下の手順を順番に試してみましょう。

1. 変更をステージングエリアに追加する

git add .

これにより、変更内容がステージングエリアに追加されます。

2. 変更をコミットする

git commit -m "Save changes before checkout"

これにより、変更がコミットされ、リポジトリに確定されます。

3. 変更をスタッシュに一時的に保存する

git stash

// メッセージ付き(分かりやすくなる)
git stash save "メッセージ"

これにより、変更がスタッシュに一時的に保存されます。

スタッシュをした後は別ブランチとの競合は避けられるため、作業を行うことができます。

また、再度スタッシュした変更を戻す際は下記のコードを使用します。

git stash pop

強制的に変更を上書きする

もし変更を破棄してブランチを切り替えたい場合、以下のコマンドを使用して変更を強制的に上書きします。

git checkout -f <branch-name>

これにより、変更が破棄され、指定したブランチに切り替えられます。

ただし、変更内容は完全に失われるため注意して使用してください。

まとめ

Gitのエラーメッセージ “error: Your local changes to the following files would be overwritten by checkout” は、変更が競合していることを示しています。

この記事では、変更の一時保存と強制的な上書きの方法について詳しく説明しました。

適切な解決策を選択して、スムーズなバージョン管理を行いましょう。

参考資料

Git公式ドキュメント: Stashing Changes

Git公式ドキュメント: git-checkout