git pullの時発生するwarningの解決方法(Need to specify how to reconcile divergent branches)
⚠️

git pullの時発生するwarningの解決方法(Need to specify how to reconcile divergent branches)

작성자
ユミンユミン
카테고리
Dev.Log
작성일
2023년 07월 06일
태그
Error
Github
notion image
 
git pullをする場合、pull方式を指定しろとエラーが出ます…
git pullgit fetchmergeを合わせたコマンドです。その中でmergeの方法を指定しろというエラーのようです。各オプションの意味を調べて、設定までしてみましょう。
 

❗️従来のpull方式

既存のpullの場合、pullを受けると不要なmerge commitが生成されます。まるで3-way mergeのような形です。(下の図の赤色のcommit不要なmerge commitです。
notion image
この方式が3つのオプションのうち、最初の選択肢に該当します。

✅ git pull --ff-only

pullするリモートリポジトリのブランチとローカルリポジトリのブランチが fast-forward 関係の場合のみ pullを許可します
二つのブランチがfast-forward関係ということは、どちらか一方を意味します。
 
二つのブランチが分かれたcommitを基準に
  • ローカルリポジトリにのみ新しいコミットがあり、リモートリポジトリにはありません。
  • リモートリポジトリにのみ新しいコミットがあり、ローカルリポジトリにはありません。
 
最初の場合はpullを受ける必要がないので、2番目の場合だけpullが可能ということになります。もし、リモートリポジトリの新しいcommitが存在し、git pullをしていない状態でローカルリポジトリに新しいcommitをしたら、gitpullを許可しないでしょう
 

✅ git pull --rebase

pullの時にrebaseを使うと下記のように動作します。
rebaseとは? 新しいブランチが開始された分岐点commitが存在する。この分岐点を基準ブランチの最新のcommitに変更する作業。
  • ローカルブランチの開始点をリモートブランチの最後のcommitに移動するようです。 その過程でconflictが発生した場合、それを解決する必要があるようです。
  • git historyが綺麗になるという利点がありますが、不用意に使う場合、別途の通知なしにgit historyを永久に変更することができるので、ff-only方式をもっとおすすめするそうです
notion image

✅ ff-only オプションをデフォルトに設定

git config pull.ff only

references

 

댓글

guest