はんなりと、ゆるやかに

アジャイル、スクラムが好きが日々から学んだことをアウトプット

git pullでerror: The following untracked …やYour local changes…が出たときの原因と対処

Gitに慣れていないときはgit pullを実行したさいにエラーが出て困ることがあります。1度対処方法が分かれば大したことないのありませんので本記事ではgit pullで起こるエラーと原因、解決方法をまとめておきます。

追跡されていないファイルでエラー

error: The following untracked working tree files would be overwritten by merge:
<ファイル名>
Please move or remove them before you merge.

git pullしたとき、remoteと同じファイル名で追跡されていないファイルがローカル環境にあってエラーになっています。対処法は一時退避するか、削除するかです。

一時退避する

git stash -aでスタッシュ領域に退避できます。その状態であればgit pullが成功します。退避したファイルはgit merge stash@{0}でマージすることもできます。

削除する

該当のファイルが不要な場合、git clean -fdで削除できます。

変更中のファイルでエラー

error: Your local changes to the following files would be overwritten by merge:
<ファイル名>
Please commit your changes or stash them before you merge.

git pullしたときにローカル環境のファイルが変更中のためエラーになっています。対処法は一時退避するか、変更を取り消すかです。

一時退避する

上記と同じくgit stashでスタッシュ領域に退避できます。この場合「-a」オプションはなくてもgit pullが成功します。*1

変更を取り消す

git restore <ファイル名>で変更を取り消します。その状態であればgit pullが成功します。

まとめ

git pullを実行したさいに一度は発生するエラーについてまとめました。Gitコマンドを使った対処法の紹介でしたが、エラーになったファイル名を変更して一時退避してもいいと思います。やりやすい方法で対応していきましょう。

git stashgit cleangit restore、それぞれのコマンドについては別でも記事を書いています。
iucstscui.hatenablog.com
iucstscui.hatenablog.com
iucstscui.hatenablog.com

*1:-aを付けてても大丈夫です