Posted at

【Git】ブランチの切り替えとかプルとか出来ないときの対処法

More than 5 years have passed since last update.

gitでブランチを切り替えようとcheckoutしたら、こんなエラーがでることがあります。

error: Your local changes to the following files would be overwritten by checkout:

ファイル名
ファイル名
Please, commit your changes or stash them before you can switch branches.
error: The following untracked working tree files would be overwritten by checkout:
ファイル名
Please move or remove them before you can switch branches.
Aborting

ブランチを切り替える前に変更をコミットしてね。

作業ツリーに知らないファイルがあるので、追加してね。

というエラーがでます。


解決策その1:作業を一時退避

現在行っている作業を一時退避させます。

以下のコマンドで退避することができ、ブランチの切り替えを行うことができます。

git stash

stashの使い方いろいろ

git stash pop //一時退避を元にもどす

git stash list //一時退避の確認
git stash clear//一時退避の消去


解決策その2:作業を取り消しちゃう

エラーで表示されているファイルの変更は、別にリセットされてもいいし。

というのであれば、すべてを取り消してしまえばOK。

git statusでステータスを確認し、Changes not staged for commit:というメッセージで表示されているファイルは、以下のコマンドでコミットを取り消すことができます。

git checkout file_name //特定のファイル

git checkout . //すべて

Untracked files:というメッセージで表示されているファイルは、以下のコマンドで取り消せます。

git clean -f

Untracked filesのほうは残しておいてもブランチ切り替えはできるので残しておいてもOKです。