Weitere ähnliche Inhalte
Ähnlich wie JTF 2013 (20)
JTF 2013
- 5. ● Git の ワークフロー
● アクティビティとグラフ
● ブランチ
● タイムライン
● まとめ
- 13. ● 開発中のメインブランチ develop
● --no-ff でマージして、ブランチで開発されたこ
とという情報を残す
● develop から分岐して作成、使い終わったら
削除される、機能追加のための features ブラ
ンチ
● develop から分岐して作成される製品リリース
のための releases ブランチ
● release ブランチからはリリースのためにした
変更を最後に master と develop にマージさ
れる
● hotfix は develop と master の計画的でない
変更や修正のために作成されるブランチ これ
も最後に master と develop にマージされる
- 15. ● master はいつもすぐにデプロイ可能
● 新しい作業を始めるときは、説明的な名前でブランチをmaster から作成する
● ローカル上で作成したブランチにコミットし、サーバーの同じ名前のブランチへも
作業内容を 定期的に push する
● フィードバックや助言が欲しい時、ブランチをマージしてほしいと思ったときは、
Pull Request を作成する
● 他の誰かがレビューをして機能に OK を出してくれたら、コードをmasterへマー
ジすることができる
● マージして maste rへ push したらデプロイする
github / github-services
- 26. % cat ~/.zshrc
### commands - experiment {{{
function stats-branch() {
local branch remote ahead behind
if [[ -n $1 ]]; then
remote=$1
else
remote="upstrm"
fi
git for-each-ref --format="%(refname:short)" refs/heads refs/remotes |
while read branch
do
ahead=`git rev-list remotes/"${remote}"/master..${branch} --count 2>/dev/null`
behind=`git rev-list ${branch}..remotes/"${remote}"/master --count 2>/dev/null`
printf "%-30s %16s | %-15s %sn" "$branch" "(behind $behind)" "(ahead $ahead)"
"remotes/${remote}/master"
done
}
# }}}
- 27. % stats-branch origin
master (behind 0) | (ahead 1) remotes/origin/master
stumpish-notifier (behind 0) | (ahead 1) remotes/origin/master
origin/HEAD (behind 0) | (ahead 0) remotes/origin/master
origin/master (behind 0) | (ahead 0) remotes/origin/master
origin/stumpish-notifier (behind 0) | (ahead 1) remotes/origin/master
origin/v2.0 (behind 16) | (ahead 1) remotes/origin/master
origin/v2.0_refactorings (behind 16) | (ahead 35) remotes/origin/master
upstrm/gh-pages (behind 1519) | (ahead 3) remotes/origin/master
upstrm/master (behind 0) | (ahead 5) remotes/origin/master
upstrm/v2.0 (behind 16) | (ahead 1) remotes/origin/master
upstrm/v2.0_refactorings (behind 16) | (ahead 46) remotes/origin/master
- 28. % cat ~/.gitconfig
...
[alias]
...
ls-branch = "!(for i in `git branch -a | colrm 1 2 | awk '{print $1}'` ; do echo `git log --date=iso8601 -n
1 --pretty='format:[%ai] %h' $i` $i ; done) | sort -r "
% git ls-branch
[2013-06-17 11:33:59 +0200] 67be380 remotes/upstrm/master
[2013-06-14 08:10:03 -0700] b99ccc2 remotes/upstrm/v2.0_refactorings
[2013-06-10 14:12:26 +0200] 1aa6fdf remotes/upstrm/gh-pages
[2013-06-06 16:12:40 +0900] 48566d4 stumpish-notifier
[2013-06-06 16:12:40 +0900] 48566d4 remotes/origin/stumpish-notifier
[2013-06-06 16:12:40 +0900] 48566d4 master
[2013-05-31 00:13:17 -0700] 6363368 remotes/origin/master
[2013-05-31 00:13:17 -0700] 6363368 remotes/origin/HEAD
[2013-05-22 01:27:14 +0200] fdbb652 remotes/origin/v2.0_refactorings
[2013-04-20 22:54:57 +0200] 31a4956 remotes/upstrm/v2.0
[2013-04-20 22:54:57 +0200] 31a4956 remotes/origin/v2.0
- 34. % cat client.rb
require "drip"
user,action,target,name,date = ARGV
MyDrip = DRbObject.new_with_uri("druby://localhost:54321")
MyDrip.write([action, target, name, date], user)
% cat server.rb
require 'drip'
require 'drb'
drip = Drip.new(".drb")
DRb.start_service("druby://localhost:54321", drip)
DRb.thread.join
% git clone https://github.com/grauwoelfchen/timeline.git
- 35. % pry
[1] pry(main)> require 'drb'
=> true
[2] pry(main)> MyDrip = DRbObject.new_with_uri("druby://localhost:54321")
=> #<DRb::DRbObject:0x000000026b3008 @ref=nil, @uri="druby://localhost:54321">
[3] pry(main)> MyDrip.read(0, 2) #=> Queue 構造になっていて `head` メソッドも便利 ;)
=> [[1373569317719130,
["create",
"branch",
"master",
"e64c41f63586a0020552dc0ba07a1d25f1e309b9",
"timeline.git",
"Fri Jul 12 04:01:57 JST 2013"],
"yasuhiro"],
[1373569650654906,
["create",
"branch",
"create-server-script",
"ecd0afee973ce623b873e0a31b6988d69d50bcb9",
"timeline.git",
"Fri Jul 12 04:07:30 JST 2013"],
"yasuhiro"]]