LoginSignup
1
2

More than 3 years have passed since last update.

本番環境でコンフリクトしたときの対処

Last updated at Posted at 2021-02-17

はじめに

投稿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とメッセージ)を表示

参考にさせていただきました

ここまで見て頂きありがとうございました。
基本的なコマンド以外は何かトラブルでも起きないと調べたりしないのですが、便利なコマンドが色々あるので使いこなせるようにしたいですね。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2