私の外部記憶装置

ただの覚え書きです。ちょこちょこ見直して加筆・修正していますが、間違ってるかも😅

【Git】コンフリクト(CONFLICT〜)

状況

  • ローカルの作業ブランチで、git pull --rebase origin mainを実行した所、下記のコンフリクトのメッセージが出た。
    (また、プロンプトに表示しているブランチ名が、rebase中の状態になった。(git)-[自分の作業ブランチ|rebase-i]-
From https://github.com/piyo/hoge
 * branch                main       -> FETCH_HEAD
CONFLICT (modify/delete): コンフリクトしたファイル名 deleted in コンフリクトしたコミットID (コミットメッセージ) and modified in HEAD.  Version HEAD of コンフリクトしたファイル名 left in tree.
Auto-merging app/javascript/packs/application.js
error: could not apply コンフリクトしたコミットID... コミットメッセージ
hint: Resolve all conflicts manually, mark them as resolved with
hint: "git add/rm <conflicted_files>", then run "git rebase --continue".
hint: You can instead skip this commit: run "git rebase --skip".
hint: To abort and get back to the state before "git rebase", run "git rebase --abort".
hint: Disable this message with "git config advice.mergeConflict false"
Could not apply コンフリクトしたコミットID... コミットメッセージ

対応

メッセージのhint:に従う

# コンフリクトを解消(今回は該当ファイルを削除)
git rm コンフリクトしたファイル名
# 途中で止まっているrebaseを再開
git rebase --continue
# .git/COMMIT_EDITMSG(コミットメッセージ編集画面?)が開いたので、:wq

# コンフリクトが解消したら、以下でリモートにプッシュ
git push --force-with-lease origin 自分の作業ブランチ