Gitのコンフリクトの解消

gitを触っている時に発生したエラーの解消方法になります。今回は完全に備忘録になります。

経緯

そもそもは2人で開発をしていました。

片方が、pushし、私の方からローカルにadd して commitしてpushしようとしたところエラーが出ました。

error: Your local changes to the following files would be overwritten by merge: myapp/settings.py

Please commit your changes or stash them before you merge.

ムゥ。とりあえずエラーを気にしつつ git pull しようとしたところ、下記エラーが出てきました。

エラーメッセージ

ざっくり翻訳すると、あなたのローカルでの変更はsettings.pyというファイルが既に書き換えられているよ。変更を変えるか、stash(コミットは変えずに変更を退避)してください。

になります。つまり・・・コンフリクト(衝突)です!

解決方法

相手側も変更をしているし、こちら側の変更も取り消したくないです。そういう時は、エラーメッセージ通りにコメントをstash(退避)してあげます。

これでデータを変更したものが保存されるよになりました。

ちなみに上記コマンドで一時保存したファイルのリストを確認できます。

そしてようやくgit pullができます。

pull後に、stashで退避させておいた中で、最新のファイルを作業場所に戻します。

このコマンドを実行するとつらつら出ますが、とどのつまり 最新のスタッシュを適用し、削除 という意味です。

これでクリーンな状態に戻りました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です