0

開発用に簡単な GIT 環境をセットアップしています。1 つはリモート マスターから複製されたマスターで、もう 1 つはブランチです (リモートにも存在します)。私は通常、ブランチで作業し、変更をプッシュする場合は、次のような通常の Git コマンド シーケンスを実行します。

  1. git pull (すべてが最新であることを確認するため)
  2. git追加
  3. git commit -m "メッセージ"
  4. ギットプッシュ

git push」を実行すると、次のようなメッセージが表示されます。

d96001d..d1cf61c  branch_release -> branch_release
[rejected]        master -> master (non-fast-forward)
error: failed to push some refs to '____________'
hint: Updates were rejected because a pushed branch tip is behind its remote
hint: counterpart. If you did not intend to push that branch, you may want to
hint: specify branches to push or set the 'push.default' configuration variable
hint: to 'simple', 'current' or 'upstream' to push only the current branch.

これを解決するには、このようにブランチを切り替えます

git checkout master.

これにより、変更されたことを意味する接頭辞「M」が付いたプレリュードのファイルの大群がマスターに取り込まれます。それから私はします

git checkout branch_release

以前にこのブランチで GIT プルを行ったので、これは発生しないはずだと考えています。

私の質問は、ブランチの 1 つをプッシュする前にマスターも更新する必要があるのは仕様によるものですか? そうでない場合、どうすればこれを間違って設定したのでしょうか。また、GIT ブランチのみを更新する必要があることを確認するにはどうすればよいでしょうか。

4

1 に答える 1

2

非高速転送エラーを解決したい場合は、プッシュする前にプルする必要があります。このエラーは、リモート マスターに、マスターにはないコミットがあることを示しています。

ブランチを指定せずに単にプッシュすると、すべてのブランチがプッシュされます。デフォルトのプッシュ ブランチ [2]を指定するか、コマンド [1] で指定できます。

[1] pushコマンドのパラメータで指定

したがって、おそらく(特定のブランチでプッシュする)ことをしたいと思うでしょう

git push origin branch_release

[2] デフォルトのプッシュ ブランチを定義する

これが役立つと思います:

このサイトによると、次のようにデフォルトのプッシュ ブランチを指定できます。

git config --global push.default 現在

[編集]

torekが指摘したように、 simpleは git バージョン 2.0 による新しい git デフォルト値になりますしたがって、更新すると(将来)この問題/質問が解決されます。

git config --global push.default シンプル

詳細については、こちらをご覧ください。

于 2013-10-21T21:17:02.033 に答える