4月20日(土)Git天空闘技場が開催されたので参加しました。
場所は、大田区の男女平等推進センター エセナおおた、
午後13時開始の10名の少数勉強会です。
最初、神速さんから「バージョン管理とgitの基礎」のセッションがありました。
Gitの勉強会なのに、いきなりpullは使わない方がいいなどと
よくあるGitの勉強会とは少し違ったおもむき
最初はsvnなど中央集中型バーション管理全体の説明、
svnの特徴などの説明があり、
次にGit等の分散型のバーション管理の説明、比較など
ここらへんはベタですね。。
Gitの特徴として
- ローカルの操作が速い
- ローカルの変更は他のユーザーに影響しない
- 可用性が高い
- マージが安全
- 変更履歴の編集が可能
次にGitのオブジェクトの説明として
- blob : ファイルの中身を表すオブジェクト
- tree : ディレクトリの中身と各blobとの対応を表すオブジェクト
- commit : 履歴に対応するオブジェクト
- tag : タグを対応するオブジェクト
そのあとは各オブジェクトに対して詳しい説明がありました。
次に、Gitの内部構想。
- .git/HEAD
- .git/config
- .git/index
- objects/
- hooks/
- refs/
今回関係あるもののみを抜粋されて説明
次に、ステージングエリアの説明、
なぜ、ステージングエリアがあるのか?とうことに対して
一般的なDVCS
ファイル単位で変更をコミット
git
1ファイルの1部分のみをコミット可能
・バグ修正、リファクタリングを別でコミット
・ファイルを一部だけ元の状態に戻す
→意味のある変更単位でコミットできる
とのこと。。
ちなみに、勉強会のタイトルになっている「天空競技場」というのは
HUNTER × HUNTERという漫画のネタで
スライドにも階数が出てきてここらへん元ネタがわかるかも
試されていたようです。。
ここでいったん休憩となりその後はハンズオン。
HUNTER × HUNTERという漫画のネタで
スライドにも階数が出てきてここらへん元ネタがわかるかも
試されていたようです。。
ここでいったん休憩となりその後はハンズオン。
ハンズオンのルールとして
- コミットのタイミングでオブジェクトの図をノートに書く
- リポジトリの内部を見る
基本はコマンドラインで行ないました。
最初はREDMEファイルを作成。
git initして、REDMEをgit add、REDMEをgit commit
.git/の中身を確認してobjects/はinfoとpackだけ
HEADの中身がmasterになっている、refsの中身が空でした。
別のファイル(僕はTESTファイルを作成)を作って、
add & commitしてみる
cat-fileを作ってノートに図を書く、
2回くらいcommitしてみる。
最初にcommitしたREADMEにcheckoutで戻り
READMEファイルのみがあるのを確認し。
ここで再び休憩。休憩中、スゥーツが振る舞われました。
ブランチを手作り、タグなんかも手作りしてみました。
そのあとgit cherry-pickの説明があり
最後はgithubのリポジトリを持ってきてgit remote addなどを行いました
途中、作業を間違えてしまうなど、ところどころ
やっている内容が??ってなる時もありましたが
なんとかついていくことが出来ました。
ハンズオンだったので座学よりは理解度が高いのですが
ただ、きっちりと理解できたか?と言われると。。
まだ、なんとなーくといった感覚がつよかったです。
個人的なKPTとして
Keep
gitの学習をつづける
Problem
コマンドを間違えて作業に手間取り
自分が何をやっているのか??と
なってしまうことが多かった
Try
gitのコマンドをきっちりと覚える
gitコマンドのチートシートなどを覚える