24

私の .git/config:

[remote "origin"]
    url = git@github.com:nfpyfzyf/test.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master

私の地元の支店:

                     HEAD
                     |
                 F---G  feature**current branch
                /
       C---D---E develop
      /          
 A---B  master

私は今機能ブランチにいて、リモートにプッシュしたいと思っています。現在のコマンドは何git push origin featureですか? もしそうしたらどうなりますgit pushか?

4

6 に答える 6

36

特定のブランチをプッシュするには、 を実行しgit push <remote> <branch>ます。あなたの場合、定義された唯一のリモートはであり、ブランチoriginをプッシュしたいので、feature

$ git push オリジン機能

ドキュメント「例」セクションでは、git pushgit push他の引数なしで実行した場合に何が起こるかを説明しています。

git push

wheregit push <remote>は現在のブランチのリモート (またはorigin、現在のブランチにリモートが構成されていない場合) のように機能します。

質問の構成を考えると、featureブランチにはリモートが構成されていないため、上記の呼び出しは次の例と同等です。

git push origin

追加の構成なしで、次のように動作しgit push origin :ます...</p>

デイジーチェーンをたどると、これは次と同等であることがわかります

git push origin :

「一致する」ブランチをオリジンにプッシュします。「マッチング」ブランチの説明については、上記のOPTIONSセクションを参照してください。

ブランチを一致させるためのルールは次のとおりです。

特別な refspec :(または+:非早送り更新を許可する) はgit、「一致する」ブランチをプッシュするように指示します。ローカル側に存在するすべてのブランチについて、同じ名前のブランチがリモート側に既に存在する場合、リモート側が更新されます。 . これは、明示的な refspec が見つからず (コマンド ラインにも、対応するリモート ファイルの Push 行にもありません。以下を参照)、push.default構成変数が設定されていない場合のデフォルトの操作モードです。

あなたの場合、一致するブランチは だけなmasterので、git pushそのブランチをプッシュして終了します。

于 2013-10-30T15:52:19.037 に答える
1

はいgit push origin feature、正しく明示的なコマンドです。

引数なしで行うとどうなるかgit pushは、構成の影響を受けます。構成変数push.defaultは、この場合に何をすべきかを git に伝えます。詳細については、man ページ (git config --helpおよび検索push.default) を確認してください。nothingmatchingupstream、など、いくつかの可能性がsimpleありcurrentます。

また、git push.default=current と push.default=upstream の違いは何ですか? 助けられる。

于 2013-04-23T10:14:37.740 に答える
0

git push origin feature正しい。単に実行git pushすると、おそらく次のように表示されます。

fatal: The current branch feature has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin feature

--set-upstream(または単に -u)を使用した後、単純git pushに動作します

于 2013-04-23T10:14:53.297 に答える
0

git-flowを使用している場合は、使用できます

git flow feature publish $FEATURE

ブランチをリモートにプッシュしてリモートに作成します。

簡単なことをするのと同じです

git push origin $FEATURE

単に実行している場合、git push何が起こるかは構成によって異なります-私の構成では、リモートに存在するすべてのブランチをプッシュします。

于 2013-04-23T10:15:03.183 に答える