gitコマンドの使い方 ~ git push ~
git push コマンド概要
git pushはlocal-repository(ローカルリポジトリ)のブランチが示すcommitをremoto-repository(リモートリポジトリ)に反映するコマンドです。
また、remoto-repository(リモートリポジトリ)のブランチを削除する場合もgit pushコマンドを利用します。
コマンドの使い方
remoto-repository(リモートリポジトリ)にcommitを追加する
git push [remote-repository] [local-branch]:[remote-branch]
remote-repositoryにlocal-branchのcommitを追加し、remote-branchが追加したcommitを示すようにする
remoto-repository(リモートリポジトリ)を指定しない場合はgit remoteで設定されているremote-repositoryにpushされます。
remote-branchとlocal-branchを指定しない場合はremote-tracking-branch(リモート追跡ブランチ)に登録されたブランチにpushされます。
以下の例は、local-repository(ローカルリポジトリ)のmasterブランチにcommitを1つ追加し、git pushでremote-repository(リモートリポジトリ)に追加しています。
(master)
$ git log --oneline --all
7ac450e (HEAD -> master, origin/master) commit-B
3440a70 commit-A
(master)
$ echo 'ccc' > file-C.txt
(master)
$ git add .
(master)
$ git commit -m 'commit-C'
[master 903ddea] commit-C
1 file changed, 1 insertion(+)
create mode 100644 file-C.txt
(master)
$ git log --oneline --all
903ddea (HEAD -> master) commit-C
7ac450e (origin/master) commit-B
3440a70 commit-A
(master)
$ git push origin master:master
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 298 bytes | 298.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/xxx/pushtest.git
7ac450e..903ddea master -> master
(master)
$ git log --oneline --all
903ddea (HEAD -> master, origin/master) commit-C
7ac450e commit-B
3440a70 commit-A
remote-branch(リモートブランチ)を削除する
git push [remote-repository] :[remote-branch]
remote-repository(リモートリポジトリ)のremote-branchを削除する場合には、local-repository(ローカルリポジトリ)を指定せずにpushすることで削除することができます。
「:」の前にはスペースが必要です。
以下の例は、remote-repository(リモートリポジトリ)のdevelopブランチを削除しています。
(develop)
$ git log --oneline --all
e574e92 (HEAD -> develop, origin/develop) commit-D
903ddea (origin/master, master) commit-C
7ac450e commit-B
3440a70 commit-A
(develop)
$ git push origin :develop
To https://github.com/xxx/pushtest.git
- [deleted] develop
(develop)
$ git log --oneline --all
e574e92 (HEAD -> develop) commit-D
903ddea (origin/master, master) commit-C
7ac450e commit-B
3440a70 commit-A
オプション
-u または –set-upstream
git push [-u | --set-upstream] [remote-repository] [local-branch]:[remote-branch]
git pushと同時に上流ブランチ(upstream)にremote-tracking-branch(リモート追跡ブランチ)を設定する場合は-uオプションを指定します。
以下の例は、remote-repository(リモートリポジトリ)にdevelopブランチがない状態で、local-repository(ローカルリポジトリ)側のdevelopブランチをpushしています。
pushする際に-uオプションを指定することで、upstream(上流ブランチ)にorigin/developを設定しています。
設定されていることはgit branch -vvコマンドで確認しています。
(develop)
$ git log --oneline --all
e574e92 (HEAD -> develop) commit-D
903ddea (origin/master, master) commit-C
7ac450e commit-B
3440a70 commit-A
(develop)
$ git push -u origin develop:develop
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 270 bytes | 270.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
remote:
remote: Create a pull request for 'develop' on GitHub by visiting:
remote: https://github.com/xxx/pushtest/pull/new/develop
remote:
To https://github.com/xxx/pushtest.git
* [new branch] develop -> develop
Branch 'develop' set up to track remote branch 'develop' from 'origin'.
(develop)
$ git branch -vv
* develop e574e92 [origin/develop] commit-D
master 903ddea [origin/master] commit-C
(develop)
$ git log --oneline --all
e574e92 (HEAD -> develop, origin/develop) commit-D
903ddea (origin/master, master) commit-C
7ac450e commit-B
3440a70 commit-A
git push の全てのオプションを確認する方法
以下のコマンドを実行するとブラウザでgit pushのヘルプページが表示される
git push --help