ブランチをちょっとだけ使いこなす。
リモートに存在しないブランチを手元で作ってプッシュするまでの流れ。
レポジトリを持ってくる。
takuya@Desktop$ git clone git@example.com.:takuya/sample.git takuya@Desktop$ cd sample/
現在のブランチを確認する。
リモートブランチを含め、現在あるブランチを確認する。
takuya@sample$ git branch -a * master remotes/origin/HEAD -> origin/master remotes/origin/master
ブランチを作成する。
ブランチを作成する(今回はリモートのmaster からブランチを作成)
takuya@sample$ git checkout -b サンプルブランチ origin/master Branch 'サンプルブランチ' set up to track remote branch 'master' from 'origin'. Switched to a new branch 'サンプルブランチ'
ブランチが切られていることを確認する。
ブランチが切られていることを確認する。
takuya@sample$ git branch -a master * サンプルブランチ remotes/origin/HEAD -> origin/master remotes/origin/master takuya@sample$ touch index.php takuya@sample$ git add .
ローカルブランチへコミットする。
ブランチに変更を加えてみる。
takuya@sample$ git commit -m '作ったブランチへコミット' [サンプルブランチ d5e9ee2] 作ったブランチへコミット 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 index.php takuya@sample$ git push Everything up-to-date
リモート(origin) にブランチを転送する。
コミットが出来たら、リモートに「ブランチ」を送信する。このときにリモートブランチが作成される。
takuya@sample$ git push origin サンプルブランチ Counting objects: 2, done. Delta compression using up to 4 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (2/2), 294 bytes | 294.00 KiB/s, done. Total 2 (delta 0), reused 0 (delta 0) remote: remote: To create a merge request for サンプルブランチ, visit: remote: https://example.com/takuya/sample/merge_requests/new?merge_request%5Bsource_branch%5D=%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%83%96%E3%83%A9%E3%83%B3%E3%83%81 remote: To example.com:takuya/sample.git * [new branch] サンプルブランチ -> サンプルブランチ
ローカルブランチの状態を確認する。
remotes/origin/サンプルブランチ
として、リモート(origin) にさっきのブランチが追加されてる。
これで、ローカルにあるブランチからリモートブランチ(新規作成)が出来たことが解る。
takuya@sample$ git branch -a master * サンプルブランチ remotes/origin/HEAD -> origin/master remotes/origin/master remotes/origin/サンプルブランチ
ブランチが出来たら、マージ
ブランチが出来たら、次はマージするのですが、マージ作業をブラウザで出来るのがgithub のプルリクの強みだったりするのでいいよね。
ブランチ間のマージ
マージするときは master にマージしていくのが基本方針として、ブランチでの作業が少し進んでいる状態をmaster にマージする感じ。
master をチェックアウトして
takuya@sample$ git checkout master
サンプルブランチを取り込む
takuya@sample$ git merge サンプルブランチ Updating 460e6a0..2bf15e1 Fast-forward bashrc | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 bashrc
取り込んだ、マージをリモートに送信する。
takuya@sample$ git push Counting objects: 2, done. Delta compression using up to 4 threads. Compressing objects: 100% (2/2), done.
ローカルブランチを削除する。
takuya@sample$ git branch -d サンプルブランチ Deleted branch サンプルブランチ (was 2bf15e1).
必要がなくなったリモートのブランチを消す。
リモートにブランチを削除するpush をする。
takuya@sample$ git push --delete origin サンプルブランチ To example.com:takuya/sample.git - [deleted] サンプルブランチ
まとめ
ローカルでブランチを作って、ブランチを送信できる
ブランチをマージするのは手元でやるのが基本。サーバー側でまとめて出来るのがgithub の魅力
リモートのブランチへの削除push が出来る
これで、帰宅時間が来たら帰宅時間ブランチを作ってpushすれば良いことが解る。