##はじめに
投稿2回目です。
この前、初めて本番環境でコンフリクトしました。
別に本番環境だからといって対処法は変わらないのですが、初めての経験でかなり焦りましたので備忘録として残したいと思います。
##状況
- 状況は下記のイメージ通りで、viでファイルを編集したことを忘れていました。。。
##まずは状況を確認する
自分の場合は原因も明らかでコンフリクトしていることは確定していたのですが、まずはgit status
で状況を確認します。
EC2に接続し、git status
を実行します。
both modified
と出力されたらコンフリクトしています。
$ git status
Unmerged paths:
(use "git add <file>..." to mark resolution)
both modified: XXXXXXX
##コンフリクトを解消する
コンフリクトしていることを確認したら、下記コマンドを実行します。
作業履歴は消えてしまうので注意してください!
# リモートの対象ブランチに強制的に一致させる
$ git reset --hard origin/master
もしくは
# git pull する前に戻す
$ git reset --hard ORIGIN_HEAD
ちなみにORIGIN_HEAD
は下記のような意味らしいです。
GitのHEAD, ORIG_HEAD, FETCH_HEAD, MERGE_HEADとは?
最新の一つ手前のコミットに対するハッシュ値の別名です。
##その他
超絶初学者ですが、最近便利なコマンドを知りましたのでよく使っています。
# ローカルとリモートのブランチ一覧を表示 + コミット履歴を表示
$ git branch -av
-
-a
オプションはリモートブランチも含めたブランチの一覧を表示 -
-v
オプションはコミット履歴(コミットのIDとメッセージ)を表示
##参考にさせていただきました
ここまで見て頂きありがとうございました。
基本的なコマンド以外は何かトラブルでも起きないと調べたりしないのですが、便利なコマンドが色々あるので使いこなせるようにしたいですね。