gitコマンドの使い方 ~ git push ~

2020年4月28日git-command

git push コマンド概要

git pushはlocal-repository(ローカルリポジトリ)のブランチが示すcommitをremoto-repository(リモートリポジトリ)に反映するコマンドです。

また、remoto-repository(リモートリポジトリ)のブランチを削除する場合もgit pushコマンドを利用します。

コマンドの使い方

remoto-repository(リモートリポジトリ)にcommitを追加する

git push [remote-repository] [remote-branch]:[local-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

Gitコマンドの使い方一覧

git-command

Posted by snow