gitのリモートブランチを使って作業を行う流れのメモ

 こんにちは加藤です。

 分散バージョン管理システムのgitを本格的(?)に使い始めて1ヶ月くらいが経ちました。けれども未だに迷うことがあるため、リモートブランチを使った作業について簡単にまとめておきます。

想定環境

 マシンA、マシンBで編集作業を行い、それらからアクセス可能な場所に連携用のリポジトリがある環境と想定します。
 また、マシンA、マシンBでは既に連携用リポジトリをcloneしており、remotes/originが設定されていると想定します。

$ git clone <連携用リポジトリ>

マシンAでの作業

 なんらかの作業をすることを思い立ったら、作業用のブランチを切ります。今回はworkingブランチとします。

$ git checkout -b working
$ git branch
  master
* working

 各種作業を行います。

$ git status
$ git add ...
$ git commit ...

 作業が完了したのであればマージしてプッシュするところですが、ブランチを切ったまま別のマシンで作業を継続したいため、workingブランチを連携用リポジトリにプッシュします。

$ git push origin working

マシンBでの作業

 マシンAでの作業を継続するため、リポジトリの内容を取得します。もちろんfetchでも構いません。

$ git branch
* master
$ git pull --rebase

 連携用リポジトリからworkingブランチを取得したことを確認します。

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

 ローカルにworkingブランチを作成します。また、workingブランチに移動したことを確認します。

$ git checkout -b working origin/working
$ git branch
  master
* working

 各種作業を行います。

$ git status
$ git add ...
$ git commit ..

 作業が完了したので、マージします。また、連携用リポジトリにプッシュします。

$ git checkout master
$ git branch
* master
  working
$ git merge working
$ git push

 マージ完了後はブランチは不要なので、ローカルのブランチと、ローカルの追跡用ブランチ、そして連携用リポジトリのブランチを削除します。

$ git branch -d working
$ git branch -r -d origin/working
$ git push origin :working

 以上、簡単なまとめでした。