git pullしたときに以下のエラーが出てきてpullできなかった。
$ git pull remote: Counting objects: 26, done. remote: Compressing objects: 100% (26/26), done. remote: Total 26 (delta 19), reused 0 (delta 0) ・・・ error: Your local changes to 'lib/api/XXXXX.rb' would be overwritten by merge. Aborting. Please, commit your changes or stash them before you can merge.
状況的にはGithub上に最新のものがあって、ローカル上はちょっと手を加えたものがあるといった差分がある状態。その状態で、Github上のものを持ってきたい(ローカル環境を最新にしたい)場合どうすればいいのか?わからなかったので覚書。
コマンド的にはgit chekcoutで可能
エラーコメント Please, commit your changes or stash them before you can merge.
に書いてある通り、コミットするか、stash(一時退避)させるかで解消できる様子。でも今回は今の修正は破棄しても大丈夫な状態だから、コミットとかをせず、なかったことにすることにしました。
その場合の方法がchekcout
git checkout lib/api/XXXXX.rb
これで作業がなくなったことになるようです。最後にgit status
で何もないことを確認して改めてgit pull
を実施したらうまくいきました。
よしよし。
ちなみに、今回の自分の場合はファイルが一つだけでしたけど、すべてのファイルの場合は
git checkout .
となるようです。
終わりに
参考にしたサイトはこちら。
今回紹介した作業以外に「作業を一時退避」とかいろいろと方法が書いてあるので、見てみるといいと思います。
そして以下のサイトも。
今回、自分の遭遇した問題はなかったのですが、今後いろいろな問題に遭遇すると思うので、ここも見ておこうと思います。
Gitも奥が深い。どんどん操作して体で慣れていかないとな。