Skip to main content

バージョン管理を考える

バージョン管理システムとは、コンピュータ上の情報の変更を管理し、それぞれの変更に目印をつけ、変更前に戻れたり、変更を取り消したりすることができるものです。

たとえば

Linux のコマンド操作で、mv コマンドを失敗してやりなおしたい場合がありませんでしたか?

そんなときに、バージョン管理システムを使えば、コマンドを打つ前に戻ることができます。 操作をやりなおしたい、過去に戻って違う道を選択したい。そんな後悔がなくなるツールがバージョン管理です。

バージョン管理ができるようになると、各段に 「出来る人」 になれます。
失敗をなかったことに出来るからです。
そして、バージョン管理ができると、他の人との情報共有もスムーズに行うことができるようになります。

つまりバージョン管理ができると、ちょーかっこいいです 😄

バージョンを管理するための仕組みとしてCVSSubversionGitがあります。

具体的に今回使うバージョン管理システムは、GitGitHub :octocat: です。

ツールを触る前に まずは、4つのグループワークを通してバージョン管理脳にマインドセットしましょう。

キーワード

  • 情報
  • 変更
  • 情報と変更の履歴
  • 情報と変更の共有

以上のキーワードについて考えることが、バージョン管理脳になるコツです。

情報とは何か

世の中には、様々な情報があります。どういった情報が身の回りにあるか、考えてみましょう。

👀 グループワーク ( 作業 5 min + 発表 1min )

  1. グループで「今回の研修にまつわる情報」についてブレーンストーミングする。
  • リーダが内容を取りまとめながら行ってください。
  • 研修にまつわる情報の例
    • 研修のスケジュール
    • 講師のプロフィール
    • 研修資料
  1. グループで、ブレーンストーミングした内容を発表してください。かぶってもいいです。

グループワークの目的は、バージョン管理対象である「情報」について注目することにあります。バージョン管理脳になる準備です。

変更とはなにか

「情報」は「変更」されます。変わらないものは、なかなかありません。
では、「変更」について考えてみましょう。

👀 グループワーク ( 作業 5 min + 発表 1min )

  1. グループで「情報の変更」についてブレーンストーミングする。研修の内容だけじゃなくてもいいです。
  • リーダが内容を取りまとめながら行ってください。
    • スケジュールの変更
    • 研修資料の変更
  • グループで、ブレーンストーミングした内容を発表してください。

グループワークの目的は、バージョン管理対象である「変更」について注目することにあります。これもバージョン管理脳になる準備です。

情報と変更の履歴

次に「情報とその変更履歴」に注目します。

👀 グループワーク ( 作業 5 min + 発表 1min )

  1. グループで「管理される必要のある変更履歴」についてブレーンストーミングして下さい。「履歴が管理」されない場合どうなるかも一緒に。
    • 銀行の入出金
      • 管理されないといつどんな振り込みがあったかわからない。
  1. ブレーンストーミング で洗い出した「管理される必要のある変更履歴」について「管理方法」を考えて下さい。
    • 銀行の入出金
      • 通帳記帳

情報と変更の共有

最後に「情報とその変更を共有する」というところに注目します。これができればバージョン管理の達人としての心構え準備が完了します。

👀 グループワーク ( 作業 5 min + 発表 1min )

  1. グループで「共有する必要のある変更」についてブレーンストーミングして下さい。「共有」されない場合どなるかも一緒に。
    • メールアドレスの変更
      • 他の人が連絡出来なくなる。
    • 飲み会会場の変更
      • 誰も来なくなる
  1. ブレーンストーミング で洗い出した「共有する必要のある変更」について「共有方法」を考えてさい。( 1グループ 2分 )
    • メールアドレスの変更
      • 電話張にある連絡先に一斉送信
    • 飲み会会場の変更
      • 一人一人に電話で口頭で伝える
      • 一人一人にメールで情報の変更内容を送信する

まとめ

何かが変わって、物事が進みますね。 その中でも情報化社会が進むこの社会で、情報の変更を管理することはとても大事なことです。
情報がいつ、どう変わったのか。 情報とその変更を管理することをバージョン管理といいます。

今回扱うバーション管理システム GitGitHub :octocat: です。
主にプログラムコードやそのファイルのバージョンを管理します。

余談

とある仕様書の例

  • 仕様書ver2_20150401.xls
  • 仕様書ver2.xls
  • 仕様書ver2(最新).xls
  • 仕様書ver2(修正前).xls
  • 仕様書ver2(修正後).xls
  • 仕様書ver2(修正後)(2).xls

「ど、どれが最新ですか。。」

大事な仕様書が、こんな風に管理されていたら、がっかりですね。