basyura's blog

あしたになったらほんきだす。

remote に branch を push し、remote から clone したリポジトリの branch を変更して push する

ローカルで作成した branch は remote に push しないと他の人から見えない。remote から clone したリポジトリは何もしなければ master ブランチしか見えない(ように見える)。

remote に branch を push し、remote から clone したリポジトリの branch を変更して push するまでの操作。

ローカルにリポジトリを作成する
$ mkdir sandbox
$ cd sandbox/
$ git init
Initialized empty Git repository in /repos/sandbox/.git/
$ touch README
$ git add .
$ git commit -m "first commit"
[master (root-commit) d31404a] first commit
 0 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 README
remote リポジトリに push

github 上にリポジトリを作成した後 push する

$ git remote add origin git@github.com:basyura/sandbox.git
$ git push origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 203 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@github.com:basyura/sandbox.git
 * [new branch]      master -> master

ブランチを確認する。master ブランチだけ見える

$ git branch
 * master

全てのブランチを確認する。remote のブランチが見える。

$ git branch -a
 * master
   remotes/origin/master
ローカルにブランチを作成する

ブランチを作り、適当にファイルを追加してコミット。

$ git checkout -b beta
Switched to a new branch 'beta'
$ touch beta.js
$ git add .
$ git commit -m "add beta.js"
[beta b75cfbe] add beta.js
 0 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 beta.js

ブランチを確認する。master と beta が見える。

$ git branch
 * beta
   master

全てのブランチを確認する。remote のブランチも見える。

$ git branch -a
 * beta
   master
   remotes/origin/master
remote に beta ブランチ を push する
$ git push origin beta
Counting objects: 3, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 236 bytes, done.
Total 2 (delta 0), reused 0 (delta 0)
To git@github.com:basyura/sandbox.git
 * [new branch]      beta -> beta

ブランチを確認する。master と beta が見える。

$ git branch
 * beta
   master

全てのブランチを確認する。remote のブランチに beta が追加されている事が分かる。

$ git branch -a
 * beta
   master
   remotes/origin/beta
   remotes/origin/master
リモートから clone してリポジトリを作り直す。
$ git clone git@github.com:basyura/sandbox.git
Initialized empty Git repository in /repos/sandbox/.git/
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 5 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (5/5), done.

ブランチを確認する。master しか見えない。

$ cd sandbox
$ git branch
 * master

全てのブランチを確認する。beta ブランチが見える。

$ git branch -a
 * master
   remotes/origin/HEAD -> origin/master
   remotes/origin/beta
   remotes/origin/master

ブランチを切り替える

$ git checkout -b beta origin/beta
Branch beta set up to track remote branch beta from origin.
Switched to a new branch 'beta'

ブランチを確認する。beta ブランチが見える

$ git branch
 * beta
   master

全てのブランチを確認する。

$ git branch -a
 * beta
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/beta
  remotes/origin/master
適当にファイルを追加してコミット
$ touch beta2.js
$ git add .
$ git commit -m "add beta2.js2"
[beta ddf18cb] add beta2.js2
 0 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 beta2.js
beta ブランチを push する
$ git push
Counting objects: 3, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 241 bytes, done.
Total 2 (delta 0), reused 0 (delta 0)
To git@github.com:basyura/sandbox.git
   b75cfbe..ddf18cb  beta -> beta