alice
リポジトリでこれを試してください(プッシュする前に):
git config push.default tracking
または、それをユーザーのデフォルトとして設定しますgit config --global …
。
git push
デフォルトではorigin
リポジトリ(現在のリポジトリのクローン元のリポジトリ)になりますが、デフォルトでは現在のブランチがプッシュされません。デフォルトでは、ソースリポジトリと宛先リポジトリの両方に存在するブランチのみがプッシュされます。
push.default
設定変数(参照はgit-config設定(1)どのようなコントロール)git push
それはどんな「refspec」の引数(すなわちにリポジトリ名の後に何かを)与えられていないときにプッシュします。デフォルト値は、上記の動作を提供します。
可能な値はpush.default
次のとおりです。
nothing
これにより、「refspec」を指定する必要があります。
matching
(デフォルト)
これにより、ソースリポジトリと宛先リポジトリの両方に存在するすべてのブランチがプッシュされます。
これは、現在チェックアウトされているブランチから完全に独立しています。
upstream
またはtracking
(どちらの値も同じ意味です。後者は「リモート追跡」ブランチとの混同を避けるために非推奨になりました。前者は1.7.4.2で導入されたため、Git 1.7.3.1を使用している場合は後者を使用する必要があります。 )
これらは、現在のブランチを「アップストリーム」構成で指定されたブランチにプッシュします。
current
これにより、現在のブランチが宛先リポジトリの同じ名前のブランチにプッシュされます。
これらの最後の2つは、一般的なケース(たとえばorigin / masterをアップストリームとして使用するローカルマスターで作業する)でも同じになりますが、ローカルブランチが「アップストリーム」ブランチと異なる名前を持つ場合は異なります。
git checkout master
# hack, commit, hack, commit
# bug report comes in, we want a fix on master without the above commits
git checkout -b quickfix origin/master # "upstream" is master on origin
# fix, commit
git push
とpush.default
に等しいupstream
(またはtracking
)、プッシュに行くorigin
のマスターブランチ。と等しい場合current
、プッシュはorigin
のquickfixブランチに移動します。
matching
設定が更新されるbare
のマスターを、それが確立された後、あなたのシナリオでは。それを確立するには、git push origin master
一度使用することができます。
ただし、upstream
設定(または多分current
)は、予想される結果により適していると思われるため、試してみてください。
# try it once (in Git 1.7.2 and later)
git -c push.default=upstream push
# configure it for only this repository
git config push.default upstream
# configure it for all repositories that do not override it themselves
git config --global push.default upstream
(繰り返しますが、1.7.4.2より前のGitをまだ使用している場合は、のtracking
代わりにを使用する必要がありますupstream
)。