Gitを勉強中

いま興味があることは、Gitです。
Gitとはバージョン管理システムの一種で、2007年頃から急速に普及が進んでいます。プログラムやWebデザインの現場で取り入れられていて、複数のスタッフで一つのプロジェクトを開発するのに活用されています。

なぜGitか。

現在製作会社の派遣スタッフとして、大手IT企業で働くことになったのですが、そこではバージョン管理にSubversionを用いていました。サーバー上のリポジトリから、スタッフ各自のPCのローカルの領域にチェックアウトを行い、ファイルを直して案件終了ごとにコミットし、スタッフ全員のファイルに反映させるということをやっています。

私はこの現場に行ってまだ一週間ですが、Subversionによるバージョン管理の仕組みを覚えるために、あえてGitを勉強することにしました。GitとSubversionとの違いを知ることにより、Subversionの理解をより深めると共に、Gitへの進化がどれくらい凄いのかを知ることができると思ったからです。

私がよく見るニュース「ねとらぼ」に、「開発現場で使える管理システム『Git』をモチーフにしたRPG『ギットクエスト』が入門に最適だと話題に」という記事があったので、そこでGitに興味を持ったというのもあります。

E-ラーニング教材を視聴しまくる

所属する製作会社では、SchooというE-ラーニングのサイトを利用できます。そこで動画を見たり学生同士がコミュニケーションを取ったりして、知識を深めることができます。

私はWeb制作からPHP、Wordpressに興味があるので、本当はそれらに関する教材の動画を視聴するはずでしたが、急遽「GitHub実践入門」著者、大塚 弘記先生の「Git講座」を視聴しました。Gitの特長や基本的な概念、基本的なコマンドを4時間かけてゆっくり丁寧にGitの使い方や概念を説明してくださり、理解しました。

内容としては

  • バージョン管理システムの歴史
  • Gitの優れている点
  • 操作方法(コマンドライン)
  • リポジトリの作り方
  • ステージ+コミットの方法
  • 履歴の確認
  • 過去にコミットしたバージョンに戻す
  • ブランチについて
  • ブランチのマージ
  • 不要ブランチの削除
  • コンフリクトについて
  • リモートリポジトリについて
  • リモートリポジトリのクローン
  • リモートブランチ
  • プッシュ&プル
  • 複数のリモートブランチ
  • フォーク&プルリクエスト

複数のリモートブランチ以降はさらっと流していましたが、こういうこともできるんだということで、Gitの優れている点が分かったような気がします。

自宅にGitを導入してみた

この講義を踏まえ、自宅の環境にGitを構築してみようと思いました。

我が家のNASには、Gitサーバーの機能をインストールできるので、これをリモートリポジトリとして使うことを思いつきました。

本当はGitHubを使うのが手っ取り早いのでしょうけれど、クラウドにプライベートなデータを預けることに抵抗があり、できれば自宅のLAN環境で作りたいと思いました。

その顛末が前回記載した「SynologyのNAS”DiskStation”でGitサーバーを構築する」です。

ああでもない、こうでもないとやっているうちに、自宅のLANのNASにリモートリポジトリを設置し、クローンやプッシュ・プルに成功しました。

しかし、まだ本格的な運用には至っていません。とりあえずWeb制作の教材をリポジトリにコピーして、そこで作業して検証してみます。将来的には、ArcanyのPHPファイルや配置画像などもコピーし、サイト更新に活用したいと思っています。

職場でSubversionの限界を目の当たりにする

先日の会議で、リポジトリのフォルダ構成に無理があり、ブランチを切るためにはリポジトリの階層を変更しなければならないという話がありました。

さらにブランチを切ることでリポジトリが巨大化するため、ブランチを切った後にチェックアウトをすると、1GB近いデータをリポジトリから取ってこなければならず、簡単には切れないとの話も聞きました。

これがSubversionの限界というやつなのか? この現場にはGitに移行するという選択肢はないのか?

私は現場に赴いて一週間しか経っていない立場上、口を挟むのはおこがましいと思いましたので、Gitのことは伏せていました。もっと現場で仕事をし、信頼関係を深め、現場の状況を理解できた頃になればGitのことを言えるようになるのかなと思いました。

あるいは、上から「明日からGitに移行します」と言われても、すぐ対応できるようにしておきます。

SubversionのリポジトリをGitに移行するのはそんなに難しくないと、E-ラーニングの教材で大塚先生がおっしゃっていました。私が現場を去る頃には、現場がSubversionからGitに移行していることを願ってやみません。


コメント

送信フォーム

入力エリアすべてが必須項目です。

内容をご確認の上、送信してください。

※メールアドレスは公開されません