git · Git

メッセージ

fatal: Need to specify how to reconcile divergent branches.

何を意味するか

git 2.34 以降、pull は歴史が分かれているときにマージか rebase かを自分で決めず止まります。壊れたのではなく、設定を尋ねているだけです。歴史が分かれている状態で pull.rebase を一度も決めていないと出ます。pull.ff only は早送りできるときだけ取り込み、できなければ何も作らずに止まるので最も安全で、pull.rebase true は毎回手元のコミットのハッシュを書き換え、false はマージコミットを残します。

直しかた

git config pull.ff only
出す道具
git
Git
29

git のエラーはほぼすべて「その状態でそれをやると何かが失われる」という拒否であり、fatal: は何も変えずに止まったという意味なので、一行目より下の hint: 行に本当の解決策が書かれていることが多いです。

エラーメッセージの読み方

  • 一行目から読みます。下に行くほど道具の内部の話で、原因はたいてい一番上に書かれています。
  • ファイル名と行番号があればそこが出発点です — スタックの最上段ではなく、自分が書いたファイルが出てくる一番上の行です。
  • 文句はそのまま検索します。ただし自分のパスや変数名は消します — その部分が検索を邪魔します。
  • 同じ事情が道具の版ごとに違う言い方で出ます。結果が合わないときは版番号も入れてみます。
  • 直す命令を貼る前に、その命令が何を捨てるかを確かめます。取り消せないものが混ざっています。

よくある質問

Q. fatal: Need to specify how to reconcile divergent branches. はどういう意味ですか。

git 2.34 以降、pull は歴史が分かれているときにマージか rebase かを自分で決めず止まります。壊れたのではなく、設定を尋ねているだけです。歴史が分かれている状態で pull.rebase を一度も決めていないと出ます。pull.ff only は早送りできるときだけ取り込み、できなければ何も作らずに止まるので最も安全で、pull.rebase true は毎回手元のコミットのハッシュを書き換え、false はマージコミットを残します。

Q. どう直しますか。

git config pull.ff only — 実行する前に、この命令が何を捨てるかを上の説明で確かめてください。

Q. どの道具が出すエラーですか。

git です。Gitの仲間で、文句は9語です。

近いエラー