Git「マージする前に、変更をコミットするか、それらを隠してください」と出たら...
チーム開発をしていて、Macのターミナルに
error: Your local changes to the following files would be overwritten by merge: Please commit your changes or stash them before you merge.
と出たので、対処してみた。
エラーが起きたタイミング
チームで開発しているので、まず
$ cd checkout master
でMacのターミナルにて、マスターへ移動。
次にチーム開発で使っているGithubより
$ git pull origin master
でmasterブランチを最新に更新。そこでエラー文が登場!
error: Your local changes to the following files would be overwritten by merge:
//ここは関係するファイル名が表示される
Please commit your changes or stash them before you merge.
何でだろうと考えつつ、対処法をまとめてみました。
対処法
エラー文をそのまま、グーグル翻訳してみると、以下のようになりますね。
エラー:次のファイルに対するローカルの変更はマージによって上書きされます:マージする前に、変更をコミットするか、それらを隠してください。
ふむふむ。
コンフリクト、つまり「競合」「衝突」となっているみたい。
対処法として
- 対象ファイルを削除する
- 指摘されたファイルを退避させる
- 強制的にマージさせる
という方法があるようです。
私としては「削除」でもいいかなと思ったのですが、初心者ゆえに不安もあったため、二番目の「一時退避」を選びました。
$ git stash
これで、現在の作業を一時退避させます。stashというコマンドで。
コンフリクトがなくなったと思うので、再度以下のコマンドです。
git pull origin master
はい、エラー文がなくなりました!
わーい!
まとめ
初学者の場合、エラーが出ると恐怖に陥りますよね...
でも嬉しいことに、先駆者がエラーが出た時の対処法をまとめてWeb上に投稿してくださっています。感謝でしかないですね。
今回ご紹介した方法以外に、良い対処法があるかと思いますので、どうぞご教授ください。
【参考にさせていただいたサイト】
本番環境でpullしたらコンフリクト?解決法3パターン!【Please commit your changes or stash them before you merge】
Author And Source
この問題について(Git「マージする前に、変更をコミットするか、それらを隠してください」と出たら...), 我々は、より多くの情報をここで見つけました https://qiita.com/PWuttam/items/734aea99275997bac3ae著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .