gitでのbranch開発

最近branchを分けて開発をする機会があったので備忘録

1.ローカルのブランチを作成する


ローカルブランチの確認

# git branch
 * master

ローカルブランチを作成する

# git branch l_hoge

※編集中のもの(コミットしてないものとか)はすべてブランチに反映されます

# git branch
 * master
   l_hoge

2.リモートブランチの作成

リモートブランチの確認

# git branch -r
  origin/HEAD -> origin/master
  origin/master

リモートブランチを作成する

# git push origin r_hoge

リモートブランチの再確認

# git branch -r
  origin/HEAD -> origin/master
  origin/master
  origin/r_hoge

3.ローカルブランチに切り替える

ローカルブランチの確認

# git branch
 * master
   l_hoge

ローカルブランチ作成

# git checkout l_hoge

ローカルブランチの再確認

# git branch
   master
 * l_hoge

4.ローカルブランチからリモートブランチにpushする

# git commit -a -m 'test commit'

リモートブランチにpush

# git push origin r_hoge

5.他の人がリモートブランチを使用する

リモートブランチ確認

# git branch -r
  origin/HEAD -> origin/master
  origin/master

originのリモートブランチの情報を反映

# git fetch origin

リモートブランチ再確認

# git branch -r
  origin/HEAD -> origin/master
  origin/master
  origin/r_hoge

l_hogeにリモートブランチをチェックアウト

# git checkout -b l_hoge origin/r_hoge

ローカルブランチ確認

# git branch
 * master
   l_hoge

6.ローカルブランチにリモートブランチからpullする

# git pull origin r_hoge

6.masterにマージする

# git pull origin r_hoge

コマンド

ローカルブランチの確認
git branch

リモートブランチの確認
git branch -r

ブランチの確認
git branch -a

ローカルブランチを作成する
git branch l_hoge

リモートブランチの作成
git push origin r_hoge

ブランチの切り替え
git checkout l_hoge
git checkout master

リモートブランチにプッシュ
git push origin r_hoge

リモートブランチからプル
git pull origin r_hoge

リモートからチェックアウト
git checkout -b l_hoge origin/r_hoge

masterでマージ
git pull origin r_hoge

リモートでのマージ
git pull origin master

PerlでCIを調べてみた

うちのプロジェクトでも継続的インテグレーション(ContinuousIntegration)を取り入れたいと思い調査。

Test::Chimps

めんどくさいっぽいのでパス


何かお勧めあったら教えてください

以上

tmuxを使ってみる

いろいろなとこで記事になっているので書く必要はないが、とりあえずメモ。

screenで縦分割をしたくて探していたら、tmuxがはやっているとのことだったので試してみた。

tmux-1.5.0

インストールはlibeventのバージョンが低かったのでアップグレード。

今度はmemcachedが動かなくなったのでアップグレード。

※参考
http://d.hatena.ne.jp/jonki/20100805/1280980895

設定ファイル .tmux.conf

/usr/share/doc/tmux-1.2/examples/screen-keys.conf

ここにある程度用意してある。

いろんなブログからよさそうなものをコピーしてきた。
とりあえず貼る。

# prefixキーをctrl+tへ変更
set-option -g prefix C-t
unbind-key C-b
bind-key C-t send-prefix
# prefix + r で設定ファイルを再読み込み
bind r source-file ~/.tmux.conf
# prefixキー連打で直前のウィンドウと切り替え
unbind C-t
bind-key C-t last-window
# copyモードのキーバインドをvi風に
set-window-option -g mode-keys vi
# 日本語対応
set-window-option -g utf8 on
# ウィンドウ名固定
set-window-option -g automatic-rename off
# マウスで移動
set-option -g mouse-select-pane on
# 番号基準値
set-option -g base-index 1
set -g history-limit 100000

#---------------------------------------
# 色設定
set -g status-bg colour7
set -g status-fg black
set -g status-attr dim
# 左部:whoami@hostname
set -g status-left '#[fg=green,bold][#20(whoami)@#H]#[default]'
# 右部:[日時]
set -g status-right '#[fg=green,bold][%Y/%m/%d(%a)%H:%M]#[default]'
set -g message-attr bold
set -g message-fg white
set -g message-bg red

set -g pane-active-border-fg white
set -g pane-active-border-bg black

set-window-option -g mode-bg white
set-window-option -g mode-fg black
set-window-option -g window-status-bg black
set-window-option -g window-status-fg white
set-window-option -g window-status-current-fg white
set-window-option -g window-status-current-bg colour12
set-window-option -g window-status-current-attr bold

#-------------------------------------
# 直前のウィンドウ
bind C-t last-window

# 分割していたペインそれぞれをWindowに
bind b break-pane
# ペインの縦分割
bind s split-window -v
# ペインの横分割
bind v split-window -h

# 分割画面への移動をviライクに割当
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R

# ペイン番号表示
bind i display-panes

# prefix + spaceでウィンドウの一覧表示
bind Space choose-window

いろいろいじって試す。

以上