Non-Fast-Forward Push の解決【Git競合】

他の開発者とともに同じリモートリポジトリ (depot リポジトリ) を利用していれば、しばしば発生するのが Non-Fast-Forward Push 問題です。

原因は、直接サーバを修正したようです。

non-fast-forward は、下のような状況で言うとmasterブランチのリモートとローカルの最新情報が異なっていることを示す。そのため、通常のプッシュが行えず、rejectが表示される。

master    a --- b --- c --- d --- e
(リモート)
          
master    a --- b --- c --- d --- f
(ローカル)     

これで、この会社は2度目です。むかーーー!

対処法

サーバ側を正にして、変更点を手修正です。泣きそうな作業です

手動マージ作業は以外では、パソコン側でマージツール起動して解決したいのですが、pushすらできません。( ノД`)シクシク…。

(1)git pull origin master  
   リモートの情報をローカルに持ってくる(自動的にマージも行われる)
(2)git diff remotes/origin/master
   現在のローカルブランチとリモートブランチの差分を表示。
   マージされた分を手修正
(3) git push origin master -f  
   最新情報が一致するため強制のプッシュを行う

Comments

comments