Git

git conflict 解消法


conflictが起きたらいったんcommitのlogを確認

$ git log

ターミナルにこんなんが出てくる

スクリーンショット 2019-04-15 16.47.14.png


取り消したいcommitのIDをコピってgit revert

$ git revert commit ID(cb4d0444c1eb5a7e2832...........)

$ git push origin branch名

で一つ前のcommit(push前の)状態に戻るからここで

conflict箇所を修正したら

$ git add -u

または
$ git add ファイル名

でaddして

$ git commit --amend            //commitしたファイルにaddを追加するときに使う

$ git push origin branch名
または
$ git push -f origin branch名 //強制push(上書きpush)


conflict時よく使うコマンドたち

ローカルcommitの取り消し

$ git reset --hard HEAD^

今回コミットした変更点を見る

$ git diff HEAD

git上の変更ファイルを確認

$ git status

branchにmasterにmargeさせる

$ git merge --no-ff master

commitpush時に

fatal: Unable to create 'C:/path/to/.git/index.lock': File exists.

If no other git process is currently running, this probably means a
git process crashed in this repository earlier. Make sure no other git
process is running and remove the file manually to continue.

みたいなエラーが出たら、、、

$ rm .git/index.lock

他に出てきたら随時追加しまし

参考

https://qiita.com/yshishido/items/d62430ebf7ad259f5bec

https://qiita.com/ikenji/items/42248085c4f4b55660d6

https://qiita.com/genreh/items/8bc0c9058a69a3d6de97

https://yu8mada.com/2018/08/15/the-difference-between-the-git-merge-options-ff-no-ff-and-ff-only/

http://tweeeety.hateblo.jp/entry/2015/06/10/215753

https://qiita.com/kansiho/items/2bacecdb95d752cb38b7