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