SCMBootCamp in Tokyo 3 にGitで参戦してきた #scmbc

https://s1-03.twitpicproxy.com/photos/large/620365569.jpg
by @kaori_t_spica

これです。これ。

SCMBootCamp in Tokyo 3 #scmbc


SCMBC初参加。
しかも参加枠は、Gitですよ、Git。


初参加者が8割と多かった。



今回も一番人気のGit。
募集枠24人のところに36、7人がGitに第一希望で殺到。
キャンセルが発生後の申し込み人数で44人だったから、相変わらずGitの割合の高い。


( ̄△ ̄;)エッ・・?





そう、今回の会場提供は、niftyさん
前と横にスクリーンがあった。



基調講演 @flyingfoozy (藤原克則)


世代差で見る 履歴管理ツール入門


世代差で見る 履歴管理ツール入門


基調講演については、あれがそれなので、コメントを差し控えさせてもらいます・・・


アイスブレイク + 環境設定確認

1人1分ぐらいで自己紹介
各テーブルの人たちはこんな配置



みなさん協力感謝です。
にぎやかな座席表になった。
MercurialのテーブルがMercurialのアイコン貼りだしたら、GitやGitHubのアイコン貼ったりと競ってた。
最後にしれーっとBazaarのアイコンが追加されてた。



座席表の編集および拡大表示

参加者

[twitter:@tri_man]
[twitter:@cointoss1973]
[twitter:@heroween]
[twitter:@ebc_2in2crc]
[twitter:@tenten0213]
[twitter:@ktz_alias]
[twitter:@orange_clover]
[twitter:@y_sumida]
[twitter:@natsu_nanana]
[twitter:@STAR_ZERO]
[twitter:@ZuQ9Nn]
[twitter:@grimrose]
[twitter:@Singleton]
[twitter:@oreshio]
[twitter:@takuan_osho]
[twitter:@nekoasuka]
[twitter:@hakurai]
[twitter:@fresh_homepie]
[twitter:@DAIDAI_obt]
[twitter:@yujauja]
[twitter:@suzukij]
[twitter:@naopi]
[twitter:@shin_semiya]
[twitter:@zuisener]
[twitter:@Todachii]
[twitter:@bach_partita]
[twitter:@masasuz]
[twitter:@aeg]
[twitter:@suzzsegv]
[twitter:@kotsu_ota]
[twitter:@fukayatsu]
[twitter:@wankomagic]
[twitter:@sekky]
[twitter:@noboruhi]
[twitter:@song_of_yste]
[twitter:@amachu841]
[twitter:@eMu_a2_zacking]
[twitter:@mizutaki_S]
[twitter:@yujauja]


スタッフ

[twitter:@pocketberserker]
[twitter:@kyon_mm]


[twitter:@cynipe]
[twitter:@sinsoku_listy]
[twitter:@tosikawa]
[twitter:@tomy_kaira]
[twitter:@flyingfoozy]
[twitter:@troter]
[twitter:@monjudoh]
[twitter:@methane]
[twitter:@wonderful_panda]


[twitter:@kaori_t_spica]
[twitter:@inda_re]
[twitter:@irof]



GitでもWindows機がいた。よかった。よかった。
僕のテーブルは6人中、Windowsが3人、Macが2人、Windows on Macが1人
(Windows機で使うなら、VMにUbuntsu入れろと言わてしまうSCMBCではこれはかなり珍しいんじゃなかろうか)



GitをインストールしてるかとGitHubのアカウントを作成してあるかの確認。
全員準備完了状態だったので、GitHubにお試し用のリポジトリを作成して
テーブルのメンバーを追加して、cloneしてみることに。





SCMBCの後に、ブルーバック地獄にまたなった。SSDがおかしいようだ。
それの影響でか .bash_history が飛んだようだ。。。
SCMBC前夜に戻ってる。
そんな歴史改変はいらん。

scmbcで実際に実行した順番とコマンド、各オプションが残ってないのは痛い ><。

お昼

@kyon_mm さん主催の場合、お弁当とスイーツがセット。

演習1 Gitをいじってみる

リポジトリの作成

環境設定の確認で作成したリポジトリは名前が「scmbc-sample」で、説明資料の名前と
同じだったので「scmbc-git-cheatsheet 」で再作成。
別のグループでは、Pull Request形式でやってたところもあるようだけど、
僕らのグループは、GitHubのCollaborators機能を使って権限を付与する形式で実施。

  1. リポジトリにある Admin ボタン クリック
  2. 左のCollaborators から、各メンバーを追加していく

各メンバがgit cloneで準備完了

チュートリアル作成の方針
  • 方針をREADMEで管理
    • HTML形式
    • 文字コードUTF-8
    • index.htmlの1ファイルに追加していく
    • 見栄えは後で余力があったら
    • git helpで出てくるコマンドを分担して、説明を書いていく
ワークフロー
  • git clone
  • git add index.html
  • git commit
  • git push orgin master
  • コンフリクトしたら、git pull


他のテーブルはコンフリクト祭りになってたみたいだが
僕のグループでは、1回目の演習でコンフリクトになったのは2人だけ。
僕はコンフリクトしなかったので、あれ??という感じ。


僕は問題なかったが、Windowsでログ日本語出力に問題があってはまってる人がいた。
やはり日本語周りは鬼門だな。



演習2 ブランチでいじってみる

ワークフロー
  • git chekcout -b branch_name
  • git add index.html
  • git commit
  • git checkout master
  • git merge branch_name

Fast-forwardマージというもの。あとでもっと調べる。


事件はここで起きた

    mvのメッセージを日本語訳

diff --git a/index.html b/index.html
index 4ebfaff..56afc97 100644
--- a/index.html
+++ b/index.html
@@ -1,41 +1,32 @@
-<html>
-<head>
-<title>Git Cheatsheet</title>
-</head>
-<body>
-<dl>
-<<<<<<< HEAD
-
-<dt>checkout</dt>
-<dd>ブランチまたはパスを作業領域にチェックアウトする</dd>
-
-<dt>clone</dt>
-<dd>レポジトリを新しいディレクトリに複製する</dd>
-
-<dt>dif</dt>
-<dd>コマンドの解説</dd>
-
-<dt>grep</dt>
-<dd>コマンドの解説</dd>
-
-<dt>fetch</dt>
-<dd>コマンドの解説</dd>
-
-=======
-<!-- cretate by @naopi -->
-<dt>mv</dt>
-<dd>Move or rename a file, a directory, or a symlink</dd>
-<dt>push</dt>
-<dd>Fetch from and merge with another repository or a local branch</dd>
-<dt>pull</dt>
-<dd>Update remote refs along with associated objects</dd>
-<!-- 2012.07.21 -->
->>>>>>> mv,pull,pushの説明を追加
-</dl>
-
-<dt>rebase</dt>
-<dd>コミット履歴を変更する</dd>
-
-
-</body>
-</html>
+<html>
+<head>
+<title>Git Cheatsheet</title>
+</head>
+<body>
+<dl>
+<dt>checkout</dt>
+<dd>ブランチまたはパスを作業領域にチェックアウトする</dd>
+
+<dt>clone</dt>
+<dd>レポジトリを新しいディレクトリに複製する</dd>
+<dt>dif</dt>
+<dd>コマンドの解説</dd>
+<dt>grep</dt>
+<dd>コマンドの解説</dd>
+<dt>fetch</dt>
+<dd>コマンドの解説</dd>
+
+<!-- cretate by @naopi -->
+<dt>mv</dt>
+<dd>ファイル、ディレクトリ、シンボリックリンクを移動または名前を変える</dd>
+<dt>push</dt>
+<dd>Fetch from and merge with another repository or a local branch</dd>
+<dt>pull</dt>
+<dd>Update remote refs along with associated objects</dd>
+<!-- 2012.07.21 -->
+</dl>
+
+<dt>rebase</dt>
+<dd>コミット履歴を変更する</dd>
+</body>
+</html>


改行コードがCRLFからLFに変わったのだ。


この後に自分の修正をpushしようとしたときに起きたコンフリクトが、
最初なにが起きたのかさっぱり理解できなかった。
なにをしでかしたんだろう僕は・・・と焦った。


pushしようとすると、SSH設定してなかったので、GitHubのアカウント情報を入力
だいたい自分のアカウント名ですらタイポするので、1、2回はエラーになる。
その間に誰かがpush。
だぁーーーpushできねーーーにしばらくなってた。



便利ツール

@cynipe さんから、Macなら、tigという便利なものがあるとの紹介

Windowsだと、Cygwinで自前でコンパイルすると日本語でもOKで動かせてるブログがあるな


履歴はこんな感じの路線図になった。

スイーツ

青山 コンパーテスショコラティエ のラブルーツ

http://distilleryimage3.instagram.com/56aa0e26d30511e1b05e1231380458d1_7.jpg
なんか痛々しい。。。

青山のコンパーテスショコラティエ
http://compartesjapan.com/user_data/packages/default/img/common/category_lovefruits.jpg
さすがに商品写真は違うな。

カステラ

これはどこのだろう?

カステラは黒船というお店のものです。
http://www.quolofune.com/

言われてみれば紙袋あったな。


http://distilleryimage4.instagram.com/241e4a48d30611e1a15e12313804f546_7.jpg


演習3 履歴をきれいにいじってみる

ワークフロー
  • git chekout -b branch_name
  • edit
  • git add
  • git commmit
  • git checkout master
  • git fetch
  • git rebase origin/master
  • git merge --no-ff branch_name

pullではなく、fetchを使った方がよいらしい。
その辺の理由も説明してくれたのだが、理解しきれてないのであとで調べる。


今度の履歴は綺麗に

作ったチートシート

https://github.com/naopi/scmbc-git-cheatsheet/blob/master/index.html

(diffのところでマージにミスってるのは内緒な)

各チーム振り返り + KPT

KPTともに大量の付箋がはられてた。

Q&A

質問がある人が付箋に貼って、講師陣が回答するもの
疲れてたのと、内容についていけないので、だいぶポカーンとしてた気がする。



プレゼント

Bitbucket Tシャツ

http://distilleryimage3.s3.amazonaws.com/0054675ad4b911e191e722000a1c86a6_7.jpg
Get!!
よかった。着れたw


SCMBCへGitリファレンスの献本

書評を書いてもいいとう条件付きでも希望する10人ぐらいでじゃんけん大会


「じゃんけんポーン」
あいこでしょ (この人数じゃ決まらないだろう・・・)」
「じゃんけんポーン」
「!?」
@irof ᕙ(⇀‸↼‶) (゜゜;)(゜゜;)(゜゜;)(゜゜;)(゜゜;)(゜゜;)(゜゜;)(゜゜;)(゜゜;)
まさかの @irof さんの一人勝ち

@sinsoku_listy ファンクラブシール

http://distilleryimage4.s3.amazonaws.com/26ad6776d4b911e1a38422000a1c8933_6.jpg
Get!!

niftyさんから、付箋、2次元キャラクターのクリアファイル

niftyさんがこんなノベリティを出してるなんて驚きのクリアファイルだった。

http://distilleryimage3.instagram.com/36560c42d32d11e1a4dd1231380fde52_7.jpg


はずれ。
niftyさんどこへ向かってる(た)の?


感想

SCM Boot Campの講師陣はさすがです。
入門用のオンライン学習も最近増えてきたけど、そのとおりにやれば真似ることはできる。
でも、間違えたときに正しい姿に戻そうとすると何を実行していいのか分からなかったりする。
チュートリアルを作成する」というお題はあっても、どういう内容にするかはグループのメンバーで
決めていく。なので、どんなことをするか、どんなことが起きるか講師の人にも分からない。
状況がよくわからないときに、よく分からない人からの質問を受けて、1、2質問して、logなどを確認して
サクッと解決してしまうのだから、すごい。
本当にありがとうございました。

主催の@kyon_mm さん、@pocketberserker さん
絶好の機会をありがとうございます。

サポートスタッフのみなさん、準備に、フォローにお疲れ様でした。


もし自分が職場のメンバーでやるとしたら、この方式は敷居が高いな。
ある程度でやることを説明しつつ、同じことしてみて、こういうところは便利でしょーという感じだろうか。

その前に、自分のGit力をまずあげないと。Windowsで、Git GUIやTortoiseGitを、Linuxemacs連携などをいろいろ試してみよう。


コミットをなかったコトにするのに、完全になかったことにするのと、ないことにマークする方法とで、
revert、reset も教えてもらって、理解した気になってが、このブログを書いてて自分の言葉で説明ができない。
ということは理解が足りない。
Gitリファレンス見ながら確認しよう。



ブログ、まとめ

Gitの各テーブルに参考用に置かれたリファレンス本。
関連するコマンドやワークフロー、似たような役割を持つものの差異についても記載されていたので、
買って来ました。
会場に置いてあったら、その場で思わず買ってしまう。
入門Gitで概念を、Gitリファレンスで使い方を理解するように進めていこう。





岡本 隆史、武田 健太郎、相良 幸範
価格: ¥ 2,604


価格は記載時点のものです。購入前にAmazonでご確認ください。




濱野 純(Junio C Hamano)
価格: ¥ 2,310


価格は記載時点のものです。購入前にAmazonでご確認ください。