Gitでリモートにプッシュすると、このような警告が表示されます。
warning: push.default is unset; its implicit value is changing in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the current behavior after the default changes, use:
git config --global push.default matching
To squelch this message and adopt the new behavior now, use:
git config --global push.default simple
See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)
To **********************************
6b9a6d2..3ab1eab master -> master
この警告は何を意味し、どうすればよいのでしょうか。
この警告は、Git 1.7.11 で simple
スタイルのプッシュと一緒に導入されました。 この問題は、現在のデフォルトである matching
では、経験の浅いユーザーがブランチの一部がリモートの同等ブランチより遅れているときに強制的にプッシュしてしまうことがあるということです。 その結果、ブランチを巻き戻すことになり、自分の作業や他の人の作業を失う可能性があります。 この simple
モードは、新しい push.default
の挙動として導入され、Git 2.0 (来年初頭にリリースされる予定) ではデフォルトになる予定です。
新しい simple
動作は upstream
設定とよく似ています。これは、現在自分がいるブランチがリモートブランチを追跡している場合にのみプッシュします。 リモートブランチはローカルブランチと同じ名前でなければなりません。
お気づきのように、このメッセージを消す方法は push.default
を設定することです。 新しい挙動を得るには、次のようにします。
git config --global push.default simple
Git'のデフォルトの挙動を取得し、警告メッセージを表示させないようにするには、次のようにします。
git config --global push.default matching
しかし、マッチングを使用することはお勧めしません。 一般的に、ほとんどの人は新しい simple
動作、あるいは upstream
を望んでいます。
2016年2月更新。
git 2.8 (2016年3月) あの大きな警告メッセージを削除しました。
Matthieu Moy (moy
)](https://github.com/moy) による commit 2f27520 (2016年2月25日) を参照してください。
(Merged by Junio C Hamano -- gitster
-- in commit 15be621, 26 Feb 2016)</sup>.コミット 15be621 を参照。
push
: 警告メッセージ "push.default is unset
" を削除しました。
この警告は 2.0 への移行前に重要なもので、移行後もしばらくは重要でした。新しいユーザーが
push.default
を明示的に設定し、古いバージョンの Git を使ったことがあっても矛盾した挙動を経験しないようにするためです。
この警告はバージョン1.8.0 (2012年10月) 以降ずっと表示されています。
この警告はバージョン1.8.0 (2012年10月) から出ているので、現在のGitユーザーの大半はこの警告に触れていると予想されます。
そのほとんどは、すでに push.default
を明示的に設定しています。そのため
マッチングからシンプルへの切り替えは、2.0 (2014年5月) で計画されましたが、実際には2.3 (2014年12月) で実現しました。
実際には2.3(2015年2月)でしか実現しませんでした。
今日、この警告は主に初心者が見るもので、その人は
push.default
の設定をしていません。 push.default`の設定を(まだ)していない初心者がほとんどです。彼らの多くにとって、この警告は 学習していない概念について語られるため混乱し というのも、彼らはまだ学んでいない概念について語り、まだ選択できないことを尋ねるからです。例えば "警告: push.default is unset; its implicit value is changing in Git 2.0" (質問に対して1260票、回答に対して1824票(執筆時点))をご覧ください。
警告を完全に削除して、初心者の邪魔をしないようにします。こんな人 まだ時々古いバージョンのGitを使っている人は、この古いバージョンを通して警告に触れることになります。 警告が表示されます。
いずれは、この警告を表示しないバージョンのGitが十分にデプロイされるようになるでしょう。
チュートリアルで push.default
を設定することを勧める必要はなくなるでしょう。
元の回答(2014年3月)
その警告は、git 2.0 (2014年第2四半期) の commit 289ca27 と commit 11037ee で、まもなく変更される予定です。
push.default is unset; its implicit value has changed in Git 2.0. Git 2.0では 'matching' から 'simple' に変更されています。
このメッセージを消して、従来の動作を維持するには、以下を使用します。
git config --global push.default matching
このメッセージを消して、新しい挙動を採用するには、次のようにします。
git config --global push.default simple
push.default
が 'matching
' に設定されている場合、git はローカルブランチを、既に存在する同名のリモートブランチにプッシュします。 を、同じ名前で既に存在するリモートブランチにプッシュします。
これは、現在のブランチを更新するために 'git pull
' が使用する対応するリモートブランチにのみ、現在のブランチをプッシュする動作です。
詳しくは "なぜ Git ではマッチングへのプッシュがデフォルトなのですか" をご覧ください。