ノンプログラマーのためのgit入門に参加しました

Published

6/10(月)に行われた「ノンプログラマーのためのgit入門」に参加しました。講師は有限会社アップルップルの伊藤さんでした。
gitとはバージョン管理システムの事で、a-blog cmsなんかもgitで管理されています。

バージョン管理とは?

  • 変更履歴を管理する
  • 変更前の状態を復元できる
  • 複数人とを想定した作業を想定した仕組み
  • 変更履歴を保存するリポジトリ
  • CVS,Subvergin,Git

gitの特徴

  • 動作が速い
  • ここにリポジトリの完全複製
  • オフラインで作業できる
  • ローカル設計(分散型)

環境用意しよう

  • Bitbucketだと5ユーザーまで無料
  • Git Hubだとフリーだと公開になってしまう

今回のセミナーではBitbucketをつかいました。

Gitのクライアントをいれる

SourceTreeをつかう

実際に操作する

コミットしてみる

  • 作業ツリーで編集作業
  • addをつかってインデックスに追加をしたら、コミットを押してプッシュする

二人で触ると「競合」する

  1. 競合するとエラーが出る
  2. 前の人の変更を取り組もうとしたらpullする
  3. merge conflictが起こる
  4. そうするとgitはどっちも入れてくれる!
  5. コミットするとコンフリクトを解消したというメッセージが出る、そしてプッシュを押すと今度は成功する

ブランチの利用

  • ある時点のソースコードを分岐
  • 本体に影響を与えずに作業できる

マージ

  • ブランチとブランチの差分を合体
  • コンフリクトが発生する可能性がある

fast-forwardマージ

  • 元マージに変更が無い場合
  • マージコミットが作成されない
  • きれいな履歴をたもつ(fast-forwardマージをしないと履歴がみにくくなるー)
  • マージコミットを作る場合は--no-ffオプション

リベース

  • 分岐元の最新コミットから分岐した状態にできる
  • リベースせずにマージは元ブランチの責任になる

フィーチャーブランチ[feature/]

  • 新しい機能の追加時にブランチを切る
  • 開発ブランチから派生
  • リベースをしてマージできる形に
  • 開発終了後、開発ブランチにマージ

トピックブランチ[bug/topic/issue]

  • ブランチ元からbug/topi/ブランチを切る
  • topicブランチでバグフィックス
  • リベースしてマージできる形に
  • テスト終了後、元ブランチにマージ

開発ブランチ[develop/]

  • 日々開発中の最新のブランチ
  • ここからfeatureブランチなどが派生してマージされる事がある

安定ブランチ[master,release/16x]

  • リリースに向けた作業を行う
  • バグフィックス、バージョン番号の書き換え
  • ここでは重要な作業は行わない
  • リリースしたときにタグ生成

最後に

  • ある程度長期的に保守が必要なものに向いている
  • 複数人でのプロジェクトに向いている
  • 単体では使わない。プロジェクト管理ツールと使う事で意味がある
  • 複数人の場合、全員がgitを深く理解する必要は無い。コンフリクトまで。

他に紹介されたもの

  • tower(有料。gitのクライアント)
  • backlogredmine(使うとよりタスク管理と合わせてプロジェクトをすすめるのにはいい)

受講して

まずは、gitってGit Hubの略称じゃなかったんだ!っていうところから始まりました。
ちょっと実際に触ってみないとわかんないこともあるので、あとは実践して覚えたいと思います。会社ではGit Hub使ってるみたいなんですが、個人でテストとしてさわるならGit HubよりBitbucketを使う事になりそうです。

関連している記事

著者について

森田 かすみ

有限会社アップルップル所属。マークアップエンジニア→インハウスデザイナーの経歴を経て、今はUI/UX/サービスデザインを勉強中。呼ばれれば登壇もします。Frontend Nagoya主催。ストレス発散方法はかっぱのイラストを描くこと。