ノンプログラマーのためのgit入門に参加しました
6/10(月)に行われた「ノンプログラマーのためのgit入門」に参加しました。講師は有限会社アップルップルの伊藤さんでした。
gitとはバージョン管理システムの事で、a-blog cmsなんかもgitで管理されています。
バージョン管理とは?
- 変更履歴を管理する
- 変更前の状態を復元できる
- 複数人とを想定した作業を想定した仕組み
- 変更履歴を保存するリポジトリ
- CVS,Subvergin,Git
gitの特徴
- 動作が速い
- ここにリポジトリの完全複製
- オフラインで作業できる
- ローカル設計(分散型)
環境用意しよう
今回のセミナーではBitbucketをつかいました。
Gitのクライアントをいれる
SourceTreeをつかう
実際に操作する
コミットしてみる
- 作業ツリーで編集作業
- addをつかってインデックスに追加をしたら、コミットを押してプッシュする
二人で触ると「競合」する
- 競合するとエラーが出る
- 前の人の変更を取り組もうとしたらpullする
- merge conflictが起こる
- そうするとgitはどっちも入れてくれる!
- コミットするとコンフリクトを解消したというメッセージが出る、そしてプッシュを押すと今度は成功する
ブランチの利用
- ある時点のソースコードを分岐
- 本体に影響を与えずに作業できる
マージ
- ブランチとブランチの差分を合体
- コンフリクトが発生する可能性がある
fast-forwardマージ
- 元マージに変更が無い場合
- マージコミットが作成されない
- きれいな履歴をたもつ(fast-forwardマージをしないと履歴がみにくくなるー)
- マージコミットを作る場合は--no-ffオプション
リベース
- 分岐元の最新コミットから分岐した状態にできる
- リベースせずにマージは元ブランチの責任になる
フィーチャーブランチ[feature/]
- 新しい機能の追加時にブランチを切る
- 開発ブランチから派生
- リベースをしてマージできる形に
- 開発終了後、開発ブランチにマージ
トピックブランチ[bug/topic/issue]
- ブランチ元からbug/topi/ブランチを切る
- topicブランチでバグフィックス
- リベースしてマージできる形に
- テスト終了後、元ブランチにマージ
開発ブランチ[develop/]
- 日々開発中の最新のブランチ
- ここからfeatureブランチなどが派生してマージされる事がある
安定ブランチ[master,release/16x]
- リリースに向けた作業を行う
- バグフィックス、バージョン番号の書き換え
- ここでは重要な作業は行わない
- リリースしたときにタグ生成
最後に
- ある程度長期的に保守が必要なものに向いている
- 複数人でのプロジェクトに向いている
- 単体では使わない。プロジェクト管理ツールと使う事で意味がある
- 複数人の場合、全員がgitを深く理解する必要は無い。コンフリクトまで。
他に紹介されたもの
受講して
まずは、gitってGit Hubの略称じゃなかったんだ!っていうところから始まりました。
ちょっと実際に触ってみないとわかんないこともあるので、あとは実践して覚えたいと思います。会社ではGit Hub使ってるみたいなんですが、個人でテストとしてさわるならGit HubよりBitbucketを使う事になりそうです。