2016-06-22 8 views
1

私が見つけた答え(example)から、git pushを実行すると、現在のブランチコミットだけがプッシュされることを理解しています。しかし、私は「Gitのpush`を入力したとき、私は(部分的に)次のような出力を得る:git pushはすべてのブランチから自動的にコミットしますか?

. . . 
Writing objects: 100% (12/12), 999 bytes | 0 bytes/s, done. 
Total 12 (delta 4), reused 0 (delta 0) 
To https://gitlab.bla-bla.git 
    773f335..db28181 doedev_userAgentTest -> doedev_userAgentTest 
! [rejected]  master -> master (fetch first) 
error: failed to push some refs to 'https://gitlab.bla-bla.git' 
. . . 

を私の現在のブランチはdoedev_userAgentTestです:

$ git status 
On branch doedev_userAgentTest 

それでは、私は上記の出力から理解することはコミットということです(私はコミットしたファイルが実際にリモートリポジトリにあることを確認しましたが)マスターブランチをプッシュしようとしましたが、失敗しました。

だから私の質問は、(マスターするために押しているときにエラーを無視する)は次のとおりです。

  1. は、私は別のブランチ上でしばらく押したという事実にもかかわらず、作られたマスターへのプッシュがあったことを右の私の仮定にいますか?
  2. 答えが「はい」の場合、現在のブランチからのみプッシュするにはどうすればよいですか?

:私は上記のすべてのブランチをリモートに持っています。

答えて

2

Gitはブランチからプッシュします。ブランチにはリモートブランチがあります。

この構文を使用し、あなたの現在のブランチをプッシュする:正しい名前を使用し、

git push origin mybranch 

あなたのリモートがorigin命名されていない場合。

また、この動作はお使いのgitの設定によって異なりますのでご注意ください。ここでの詳細:Does "git push" push all commits from other branches?

+0

お返事ありがとうございます。はい、私はこのブランチを遠隔から持っています。私は私の質問に含まれている同じリンクを持っています:) –

+0

@ユージーンこれはあなたの質問にもかかわらず答えます。 – blue112

1

追加のオプションなしのgit pushの動作はgit configによって異なります。

リモートマスターが他人によって更新されたため、マスターのプッシュは拒否されます。最初にローカルマスタを更新するにはgit pull origin --rebase masterを実行してください。

マスターのみをプッシュしたい場合は、git push origin master:masterを常に安全に実行できます。

更新:doedev_userAgentTestのみをプッシュしたい場合は、git push origin doedev_userAgentTest:doedev_userAgentTestを実行してください。 doedev_userAgentTestがチェックアウトされている場合は、git push origin HEAD:doedev_userAgentTestも機能します。前者の場合は、:doedev_userAgentTestを省略することができます。

関連する問題