ローカルで作成した 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