git pull
で警告が表示されたのでそれについて調べた記録
事象
git pull
をすると下記の警告が表示された。
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.
環境
- macOS 10.14.6 (Mojave)
- git version 2.27.0
原因
2.27.0
から警告を表示するようになったらしい。
"git pull" learned to warn when no pull.rebase configuration exists, and neither --[no-]rebase nor --ff-only is given (which would result a merge).
↓Google翻訳+修正
"git pull"は、pull.rebase設定が存在せず、--[no-]rebaseも--ff-onlyも指定されていない場合に警告するようになりました(結果はマージになります)。
対応
警告文にある通り、configを設定するか、pullオプションを使用する。
経緯
Often novice Git users forget to say "pull --rebase" and end up with an unnecessary merge from upstream. What they usually want is either "pull --rebase" in the simpler cases, or "pull --ff-only" to update the copy of main integration branches, and rebase their work separately. The pull.rebase configuration variable exists to help them in the simpler cases, but there is no mechanism to make these users aware of it.
Issue a warning message when no --[no-]rebase option from the command line and no pull.rebase configuration variable is given. This will inconvenience those who never want to "pull --rebase", who haven't had to do anything special, but the cost of the inconvenience is paid only once per user, which should be a reasonable cost to help a number of new users.
↓Google翻訳+修正
多くの場合、初心者のGitユーザーは "pull --rebase"と言うのを忘れて、アップストリームからの不要なマージが発生します。彼らが通常望んでいるのは、より単純なケースでは"pull --rebase"、またはメインの統合ブランチのコピーを更新し、作業を個別にリベースする"pull --ff-only"のいずれかです。 pull.rebase構成変数は、より単純な場合にそれらを支援するために存在しますが、これらのユーザーにそれを認識させるメカニズムはありません。
コマンドラインから--[no-]rebaseオプションがなく、pull.rebase構成変数が指定されていない場合、警告メッセージを発行します。これは、特別なことを何もする必要がなかった、"pull --rebase"をしたくない人には不便ですが、その不便さの代償は1ユーザーにつき1回しか支払われません。これは、多くの新しいユーザーを助けるために妥当なコストでなければなりません。
情報ソース
https://github.com/flutter/flutter/issues/54983
https://public-inbox.org/git/20200304022931.2469455-1-alexhenrie24@gmail.com/
https://github.com/git/git/blob/master/Documentation/RelNotes/2.27.0.txt