👌

git pull origin main の失敗時の対処法

2022/05/27に公開

誰かが同じファイルをいじった時にコンフリクトが起きると、pullにおけるmergeの部分が失敗します。
ローカルの作業ブランチにて、
$ git main origin main
をすると

Auto-merging .gitignore
CONFLICT (content): Merge conflict in .gitignore
error: could not apply eea8e2d... 〇〇××〇〇××
Resolve all conflicts manually, mark them as resolved with

①"git add/rm <conflicted_files>", then run "git rebase --continue".

②You can instead skip this commit: run "git rebase --skip".

③To abort and get back to the state before "git rebase", run "git rebase --abort".

と、こんな感じ。Git初めて一ヶ月の自分が解決して感じた部分を書きます。この場合、
.gitignore ファイル内でコンフリクトが起きています。

対処法①

コンフリクトを手動で解決し、  
git add ファイル名  
をターミナルで打ち込む。次に
git rebase --continue  
(コンフリクト解決したので続けていいよーて感じ。)を打ち込む。(成功)

(事故が起こりそうだ!ってなって時を止めて、車の位置をむりやり変えて、時の流れを再開したらまるで何もなかったかのようにmerge(rebase)が成功しているって感じかな)イメージはこんな感じ。
わしはこれにて成功しました。

対処法②

git rebase --skip   
これはおすすめしないかな。よくわかってないワシらがスキップなんてするとコミットのずれが起きそうでビビったので俺は避けたが熟知すれば使えるようにもなるのだろう

対処法③

git rebase --abort  
これはgit pull origin main する前の状態に戻るよって感じ。
これ使うと安全圏まで戻せる。(上記の交通事故の件で言うと事故の3秒前まで戻すイメージ。ただpullしたら同じ運命に会うので解決したことにはならない、辛いな。)

*ちなみに コンフリクト起きてル時にgit status すると
interactive rebase in progress; [コミットナンバー]
ってなる。怖かったら対処法③で安全圏まで戻れば一旦心にゆとりが出るとか出ないとか。

僕も経験浅いので免責で参考程度に。

Discussion