web-dev-qa-db-ja.com

警告:Push.defaultは設定されていません。その暗黙の価値はGit 2.0で変わります

私はしばらくの間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つにそれを設定することができますが、それらはどういう意味ですか? simplematchingの違いは何ですか?

あるクライアントで変更した場合、リポジトリを共有している他のクライアントで何かする必要がありますか?

1599
Marko

それは ドキュメント で非常に詳細に説明されています、しかし私は要約しようとします:

  • matchinggit Pushが意志を意味する すべてのローカルブランチをプッシュする リモート上の同じ名前を持つものにプッシュする。これにより、意図しないブランチを誤ってプッシュしやすくなります。

  • simplegit Push 現在のブランチのみをgit pullからプルするブランチにプッシュし、それらの名前が一致していることもチェックします。これはより直感的な動作です。そのため、デフォルトはこれに変更されています。

この設定はあなたのローカルクライアントの振る舞いに影響するだけで、どのブランチをコマンドラインでプッシュしたいかを明示的に指定することによって上書きすることができます。他のクライアントは異なる設定を持つことができます それはあなたがどのブランチをプッシュしたいかを指定しないときに起こることに影響するだけです

2134
hammar

私はこれが古い投稿であることを認識していますが、私はちょうど同じ問題に遭遇し、答えを見つけるのに苦労したので、私は少し追加したいと思いました。

それで、@ハマーの答えは正しいです。 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のアップデートまで見たことがないでしょう)。

19
Bill

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を実行しているシェルを閉じて新しいバージョンを使うことでした!

7
Tom Barron

私はなぜ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'を設定する必要はありません。

1
Eugene Yarmash