git push コマンド詳細
ローカルリポジトリのブランチ名とリモート(追跡)リポジトリのブランチ名の双方を明示的に指定
1 |
$ git push <リモートリポジトリ名> <ローカルリポジトリのブランチ名>:<リモートリポジトリのブランチ名> |
1 |
$ git push origin foo:bar |
ローカルリポジトリの foo ブランチをリモートリポジトリ origin の bar ブランチへ pushする
1 |
$ git push origin master:master |
ローカルリポジトリの master ブランチをリモートリポジトリ origin の master ブランチへ pushする
リモートリポジトリのブランチ名を省略
1 |
$ git push <リモートリポジトリ名> <ローカルリポジトリのブランチ名> |
1 |
$ git push origin master |
リモートリポジトリ(push先)のブランチ名が省略されているため、ローカルリポジトリと同じブランチ名 master に対して pushする。(但し、push.defaultの設定に依存する)
upstreamの設定つき
1 |
$ git push -u origin master |
1 |
$ git push --set-upstream origin master |
1 |
$ git push -u origin foo:bar |
リモートリポジトリのブランチ名とローカルリポジトリのブランチ名を省略
1 |
$ git push origin |
1 |
$ git push |
pushの送り元のブランチ名も省略しているため、『どれ』と『どれ』のブランチから、『どれ』と『どれ』のブランチへ push されるかは、ローカルの環境設定依存。古いデフォルト設定(push.default)は、名前が一致する(matching)ブランチを『全て』pushする。『全て』ということは複数のブランチを1回のpushコマンドでpushする(できる)ことを意図する。つまり、git push –all しかし名前が一致しない(リモートリポジトリに存在しない)ブランチ(名)はpushしない、という挙動になる。
リモートブランチの削除
1 |
$ git push origin :foo |
ローカルリポジトリの『空』ブランチをリモートリポジトリ origin の fooブランチへpushする。
すなわち、リモートリポジトリの fooブランチを削除する。
Upstream(上流ブランチ/リモートブランチ)の設定オプション
1 |
$ git push -u origin master |
は、以下のコマンドと同一
1 2 3 |
$ git push origin master $ git branch master -u origin/master |
1 2 3 |
$ git push origin <ローカルブランチ名> $ git branch <リモートリポジトリ名> -u <リモートブランチ名> |
ローカルリポジトリの全てのブランチをpushする。
1 |
$ git push origin --all |
1 2 3 |
$ git config default.push match $ git push |
おまけ : 実行しないでテストだけ
1 |
$ git push --dry-run |