0

特定の機能のために分岐する開発ブランチがあります。ブランチを作成/チェックアウトし、いくつかのコミットを行い、発行できるようにしたいと思います:

git push

また

git push origin

リモートリポジトリにプッシュします。可能であれば、どちらのコマンドでも問題ありません。プッシュするたびにブランチを指定する必要がないようにしたいだけです。私はいくつかの設定をセットアップしようとしました:

git config --global push.default upstream

しかし、上記のコマンドのいずれかを実行してプッシュしようとすると、エラーが発生します。

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

git push --set-upstream origin myBranch

何か不足していますか?

4

1 に答える 1

2

新しいブランチをローカルに (git branchまたはを使用してgit checkout -b) 作成する場合、それらのブランチは単なるローカル ブランチであり、追跡情報は含まれません。したがって、プッシュすると、明示的に指示しない限り、自動的にプッシュされず、リモートブランチが作成されません。

git push --set-upstream origin remoteBranchNameこれを行う 1つの方法は、エラー メッセージに既に記載されていますgit push -u origin remoteBranchName。その後、upstream構成push.default(およびsimpleGit 2.0 でデフォルトになる構成) によりgit push、そのブランチがプッシュされます。

また、常に現在のブランチを同じ名前のリモート ブランチにプッシュするように設定することもできますpush.defaultcurrentしかし、私は実際にそれを試したことはありません。それは、upstream(またはsimple) 達成されたプッシュとプルの間の対称性を取り除くため、反対することをお勧めします。

ところで。リモート ブランチが既に存在するが、ローカル ブランチがない場合は、そのリモート ブランチ ( git checkout remoteBranchName) をチェックアウトするだけで、新しいローカル ブランチが自動的に作成され、追跡情報が設定されます。

于 2013-06-06T14:18:52.843 に答える