私はしばらくの間Gitを使っていて、最近Push
を使おうとしたときにこの警告メッセージが出るのを見つけるためだけにアップデートをダウンロードしました。
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
私は明らかに言及された値の1つにそれを設定することができますが、それらはどういう意味ですか? simple
とmatching
の違いは何ですか?
あるクライアントで変更した場合、リポジトリを共有している他のクライアントで何かする必要がありますか?
それは ドキュメント で非常に詳細に説明されています、しかし私は要約しようとします:
matching
はgit Push
が意志を意味する すべてのローカルブランチをプッシュする リモート上の同じ名前を持つものにプッシュする。これにより、意図しないブランチを誤ってプッシュしやすくなります。
simple
はgit Push
が 現在のブランチのみをgit pull
が からプルするブランチにプッシュし、それらの名前が一致していることもチェックします。これはより直感的な動作です。そのため、デフォルトはこれに変更されています。
この設定はあなたのローカルクライアントの振る舞いに影響するだけで、どのブランチをコマンドラインでプッシュしたいかを明示的に指定することによって上書きすることができます。他のクライアントは異なる設定を持つことができます それはあなたがどのブランチをプッシュしたいかを指定しないときに起こることに影響するだけです 。
私はこれが古い投稿であることを認識していますが、私はちょうど同じ問題に遭遇し、答えを見つけるのに苦労したので、私は少し追加したいと思いました。
それで、@ハマーの答えは正しいです。 Push.default simple
を使うことは、ある意味では、あなたのブランチでトラッキングを設定するようなものなので、プッシュやプルの際にリモートとブランチを指定する必要はありません。 matching
オプションは全てのブランチをデフォルトのリモート(あなたがあなたのレポを設定していない限りセットアップされた最初のもの)の対応するものにプッシュします。
将来他の人が役に立つと思うことの1つは、OS X Mountain LionでGit 1.8を実行していて、このエラーが発生したことがないことです。 Mavericksにアップグレードすると突然それが現れました(git --version
を実行するとgit version 1.8.3.4 (Apple Git-47)
が表示されますが、これはOSのアップデートまで見たことがないでしょう)。
Gitから設定の値simple
について文句を言うメッセージが表示されたら、git version
を確認してください。
XCode
を 1.7.4.4 から 1.8.3.4 にアップグレードしたMac
を(Mountain Lion
を実行しているgit
上で)アップグレードした後、アップグレード前にシェルが起動していたgit 1.7.4.4 グローバル設定のPush.defaultの値simple
について.
解決策は古いバージョンのgit
を実行しているシェルを閉じて新しいバージョンを使うことでした!
私はなぜUbuntu 16.04(Git 2.7.4に付属しています)ではその大きな警告メッセージを得ていましたが、Arch Linuxではそうではなかったのでしょうか。その理由は Git 2.8 (2016年3月)で警告が削除されたためです。
Gitバージョン2.0前後の移行期間中、Push.default設定変数を設定せずに "git Push"を実行すると、かなり大きな警告が表示されていました。移行がずっと前に完了したので、我々はもはや警告しません。
そのため、Git 2.8以降を使用している場合は警告が表示されず、デフォルトのPush.default
の動作を変更しない限り'simple'
を設定する必要はありません。