Gitコマンド

git push

リモートレポジトリの状態を参照情報を、ローカルの参照情報で更新します。

git push の概要

git push はリモートレポジトリを更新するGit コマンドです。ローカルにあるコミット履歴と関連する参照をリモートに送信することで更新を行います。もし、引数でどのリモートレポジトリにPush するかの指定が省略された場合は、現在のブランチの設定値である「branch.<リモート名>.remote」の値を元に、Push先のリモートレポジトリが決まります。(この設定により指定されるリモートブランチは、しばしばそのブランチの「上流ブランチ」と呼ばれます。)もし設定値がない場合は、デフォルトで「origin」にPushされます。

上流ブランチの設定値。push 先は自動的にここになる。
git config における、上流ブランチの設定 

また、もしどのブランチをPushするかコマンドの引数で指定されなかった場合「remote.<ブランチ名>.push」の設定値を参照します。もし見つからなければ、「push.default」の設定値を参照しますが、その値も見つからない場合は、最終的に「現在のブランチを対応する上流ブランチにPushする」事になります。(これは、push.defaultの値が「simple」のときと同じ動作です)この場合は、上流ブランチがローカルブランチと異なる名前であれば、安全のため、Push を中断します。このような上流ブランチを更新するには、明示的に引数で指定してgit pushを実行する必要があります。

なお、フックを使えば、リモートに何かがPushされるたびに実行される機能を付け加えることもできます。

主要なオプション

--all

すべてのブランチをpushします。このオプションを使うときは、ブランチ名を指定できません。

--prune

Push時に、ローカルに存在しないブランチを削除します。たとえば、リモートのtmpブランチは、同じ名前のブランチがローカルに存在しない場合、削除されます。

--q, --quite

エラーが発生しない限り、進捗に関する出力を停止します。

-v, verbose

進捗に関する出力を行います。

-f, --force

もしローカルの参照情報が、リモートのそれを上書きするような場合は、push は中断されます。このオプションにより、強制的な上書きを実行することができます。

-u, --set-upstream

もしpush が成功すれば、対象のリモートブランチを、ローカルブランチの上流ブランチとして設定します。具体的には、config のbranch.<ブランチ名>.remote の値が更新されます。

--delete

リモートにあるブランチを削除します。この操作は「git push <repository> :<branch name>」と同義です。コロンは「<ローカルブランチ>:<リモートブランチ>」という用に push 対象ブランチを指定すますが、コロンの前を空文字にする事で、空をpush、すなわち削除するというリクエストと解釈されるからです。

Git公式ドキュメント

Git公式ドキュメント「git push」へのリンクです。