[Git]pullするときに「Pulling without specifying how to reconcile divergent branches is discouraged.」の警告が出る場合の対処

Gitでリモートリポジトリからプルするときに次のような警告が出る場合の対処方法を紹介します。

警告メッセージの内容

warning: Pulling without specifying how to reconcile divergent branches is
discouraged. You can squelch this message by running one of the following
commands sometime before your next pull:

  git config pull.rebase false  # merge (the default strategy)
  git config pull.rebase true   # rebase
  git config pull.ff only       # fast-forward only

You can replace "git config" with "git config --global" to set a default
preference for all repositories. You can also pass --rebase, --no-rebase,
or --ff-only on the command line to override the configured default per
invocation.

このエラーメッセージを日本語にすると次のようになります。

警告メッセージの内容(日本語)

警告: 分岐したブランチを調整する方法を指定せずにpullすることは推奨されていません。次のコマンドを次のpullの前に実行することで、このメッセージを抑制できます。

  git config pull.rebase false  # マージ(デフォルトの戦略)
  git config pull.rebase true   # リベース
  git config pull.ff only       # ファストフォワードのみ

すべてのリポジトリにデフォルトの設定をするには、"git config""git config --global"に置き換えることができます。また、コマンドラインで--rebase、--no-rebase、または--ff-onlyを渡すことで、設定されたデフォルトを上書きすることもできます。

原因

この警告は、Gitのバージョン2.27から導入されたもので、リモートリポジトリからプルするときにどのように分岐したブランチを調整するかを指定しないと警告が出るようになりました。

解決策

この警告を抑制するには、次のいずれかの戦略を選び、git configコマンドで設定します。

  • デフォルト
  • リベース
  • ファストフォワードのみ

デフォルト

次のコマンドを実行するとデフォルトの挙動になります。

コマンド

git config pull.rebase false

git pull--rebase optionを付けずに実行するのと同じです。rebaseせずにfast-forward 可能な場合は fast-forward を行いそうでない場合は、merge commitを生成しようとします。

リベース

次のコマンドを実行するとrebaseをデフォルトの挙動になります。

コマンド

git config pull.rebase true

git pull--rebase optionを付けて実行するのと同じです。rebaseせずにfast-forward 可能な場合は fast-forward を行いそうでない場合は、rebaseを行います。

ファストフォワードのみ

次のコマンドを実行するとfast-forwardのみをデフォルトの挙動になります。

コマンド

git config pull.ff only

git pull--ff-only optionを付けて実行するのと同じです。rebaseせずにfast-forward 可能な場合は fast-forward を行いそうでない場合は、fast-forwardを行わずにエラーになります。

まとめ

Gitのバージョン2.27から導入された警告を抑制する方法を紹介しました。

コメント

コメントを残す

マークダウン形式でコメントを入力できます。

アップロードファイルの最大サイズ: 512 MB。 画像, 音声, 動画, 文書, スプレッドシート, 対話型, テキスト, アーカイブ, コード, その他 をアップロードできます。 Youtube、Facebook、Twitter および他サービスへのリンクは自動的にコメント内に埋め込まれます。 ここにファイルをドロップ

プロフィール背景
Ryosuke
Ryosuke

ITエンジニア & 講師

クラウドネイティブやアーキテクチャ設計の講師として活動しながら、ITエンジニアのDXを推進するために新しい技術やベストプラクティスを常に学び、エンジニアの生産性と開発品質の向上に貢献することを目指しています。猫5匹飼っています。山奥のポツンと一軒家に住んでいて、事務所は海の近くです。