SCMBootCamp in Tokyo 3 にGitで参戦してきた #scmbc
これです。これ。
SCMBC初参加。
しかも参加枠は、Gitですよ、Git。
初参加者が8割と多かった。
今回も一番人気のGit。
募集枠24人のところに36、7人がGitに第一希望で殺到。
キャンセルが発生後の申し込み人数で44人だったから、相変わらずGitの割合の高い。
( ̄△ ̄;)エッ・・?
そう、今回の会場提供は、niftyさん
前と横にスクリーンがあった。
アイスブレイク + 環境設定確認
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機能を使って権限を付与する形式で実施。
- リポジトリにある Admin ボタン クリック
- 左のCollaborators から、各メンバーを追加していく
各メンバがgit cloneで準備完了
チュートリアル作成の方針
ワークフロー
- 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できねーーーにしばらくなってた。
スイーツ
演習3 履歴をきれいにいじってみる
作ったチートシート
https://github.com/naopi/scmbc-git-cheatsheet/blob/master/index.html
(diffのところでマージにミスってるのは内緒な)
Q&A
質問がある人が付箋に貼って、講師陣が回答するもの
疲れてたのと、内容についていけないので、だいぶポカーンとしてた気がする。
懇親会&闇LT
プレゼント
SCMBCへGitリファレンスの献本
書評を書いてもいいとう条件付きでも希望する10人ぐらいでじゃんけん大会
「じゃんけんポーン」
「あいこでしょ (この人数じゃ決まらないだろう・・・)」
「じゃんけんポーン」
「!?」
@irof ᕙ(⇀‸↼‶) (゜゜;)(゜゜;)(゜゜;)(゜゜;)(゜゜;)(゜゜;)(゜゜;)(゜゜;)(゜゜;)
まさかの @irof さんの一人勝ち
感想
SCM Boot Campの講師陣はさすがです。
入門用のオンライン学習も最近増えてきたけど、そのとおりにやれば真似ることはできる。
でも、間違えたときに正しい姿に戻そうとすると何を実行していいのか分からなかったりする。
「チュートリアルを作成する」というお題はあっても、どういう内容にするかはグループのメンバーで
決めていく。なので、どんなことをするか、どんなことが起きるか講師の人にも分からない。
状況がよくわからないときに、よく分からない人からの質問を受けて、1、2質問して、logなどを確認して
サクッと解決してしまうのだから、すごい。
本当にありがとうございました。
主催の@kyon_mm さん、@pocketberserker さん
絶好の機会をありがとうございます。
サポートスタッフのみなさん、準備に、フォローにお疲れ様でした。
もし自分が職場のメンバーでやるとしたら、この方式は敷居が高いな。
ある程度でやることを説明しつつ、同じことしてみて、こういうところは便利でしょーという感じだろうか。
その前に、自分のGit力をまずあげないと。Windowsで、Git GUIやTortoiseGitを、Linuxでemacs連携などをいろいろ試してみよう。
コミットをなかったコトにするのに、完全になかったことにするのと、ないことにマークする方法とで、
revert、reset も教えてもらって、理解した気になってが、このブログを書いてて自分の言葉で説明ができない。
ということは理解が足りない。
Gitリファレンス見ながら確認しよう。
ブログ、まとめ
- SCMBootCamp in Tokyo3 #scmbc togetter
- #scmbc Tokyo 3 に行ってきました -@fukayatsu.dev()
- SCMBootCamp in Tokyo 3 #scmbc に参加してきました #scmbc -secretbase@cointoss1973
- SCM Boot Camp in Tokyo 3にMercurialのサポーターとして参加してきました。もしくはBitbucket勉強会の告知 -放牧日記
- SCMBootCamp in Tokyo 3 -彷徨えるフジワラ
- SCMBootCamp in Tokyo 3 に参加しました -THE BLUE NOWHERE
- SCMBootCamp in Tokyo3 #scmbc を開催しました。 -うさぎ組
- SCMBC in Tokyo3 に参加してきました。 -全力で怠けたい
- 第3回 SCMBootCamp in Tokyo (#scmbc) -Engineer support
Gitの各テーブルに参考用に置かれたリファレンス本。
関連するコマンドやワークフロー、似たような役割を持つものの差異についても記載されていたので、
買って来ました。
会場に置いてあったら、その場で思わず買ってしまう。
入門Gitで概念を、Gitリファレンスで使い方を理解するように進めていこう。