WCK Meeting Vol.45「Gitの基礎からソースコード管理を学ぶ」レポート
2016年11月18日(金)高知市文化プラザかるぽーとにて、WCK Meeting Vol.45「Gitの基礎からソースコード管理を学ぶ」が行われました。
今回は高知でフリーのエンジニアとして活躍されているボーンさんことスクソムデアン ノッポーンさんに企画・登壇いただきました。
世界中のweb制作やアプリ開発の現場で導入されている「Git」。ソースコード管理の重要性や各種ツールの利便性を耳にしつつ、導入に敷居の高さを感じている人も多いのではないでしょうか。当日の会場でも、2/3 以上の方がこれから取り入れてみたいという意見でした。
今回の勉強会では、レクチャーとワークショップを通して、ソースコードを管理する意味と Git の基礎を学びました。
ソースコード管理の目的とメリット
まずはじめに、ソースコードを管理する意味と Git などのツールを導入するメリットを解説いただきました。
ソースコードのバージョン管理を行う主な目的として、以下の4つが挙げられました。
- 変更履歴と内容を記録・参照する
- 過去の状態に復元する
- 変更者と変更理由を知る
- プロジェクトを管理する
ツールを使わずにこれらを管理する場合、日付やバージョン名をつけてファイルを別名保存したり、コード中にコメントアウトして残すなど、煩雑な作業が必要になります。このような環境では、最新のファイルが行方不明になったり、ファイルが誤って上書されてしまうといった事故も起こりやすくなります。
そこで Git などのツールを取り入れることで、煩わしい作業を省き、漏れなく事故なくバージョン管理を行えるようになります。開発中に問題が起きても、問題の発生以前の状態へ戻したり、変更履歴から原因の調査・分析ができるといったメリットも生まれるということでした。
Git を使ってみよう
次に Git の基本的な使用例が紹介されました。
Git では、コメントを付けてファイルの変更履歴を残す「コミット」と呼ばれる操作ごとに、ソースコードの管理が行われます。コミットを行うことで、いつ・誰が・どのファイルのどの部分を・どんな理由で変更したかが記録され、必要に応じて参照・復元できることをコマンドライン実行の様子とともに解説いただきました。
「変更履歴と内容を記録・参照する」、「変更者と変更理由を知る」、「過去の状態に復元する」というソースコード管理の目的も、以下のようなコマンドによって達成できることが分かりました。
- git status:変更の有無など現在の状態を確認する
- git diff:変更されたファイルの差分を抽出する
- git log:変更履歴を確認する
- git show:特定の変更履歴(コミット)の内容を確認する
- git checkout:過去の履歴の状態に復元する
CUI で Git ハンズオン
続いて Git の初期設定から導入、コマンドの実行を行うワークショップが行われました。
一人で取り組むにはなかなかハードルの高い「黒い画面」ですが、ボーンさんが参加者の席をまわってサポートをしてくださいました。こうしてハンズオン形式で実際に触ってみて、その場でつまづきを解消できると理解が深まりますね。
押さえておきたい Git のポイント
後半のレクチャーでは Git を使う上で理解しておきたい「リモートレポジトリとローカルレポジトリ」、「ワークツリーとインデックス」の関係について図解を交えて解説いただきました。
また、複数の開発を並行して行う際に便利な「ブランチ」という機能についても教えていただきました。
チーム開発における Git
Git は個人でのソースコード管理にも有効ですが、複数人のチームでひとつの成果物を作る際にも威力を発揮します。エンジニア、コーダー、デザイナーから成るweb制作チームを例に、 Git を使った共同作業の様子が紹介されました。
Git を使ったチーム開発では、メンバーがそれぞれ作業場としてのローカルレポジトリを持ち、サーバー上の保管倉庫としてのリモートレポジトリに対して「push」「clone」「fetch」「pull」といった操作を行ってソースコードを管理していきます。
他のブランチでの作業内容を反映させたり、複数のメンバーが同じファイルを変更した際に変更内容を統合するには「マージ」という操作を行います。あるファイルの中で誰がいつどこで何を変更したかを調べる「git blame」というコマンドも教えていただきました。
言葉の意味に混乱しがちな内容も、よくある作業例を見ながら分かりやすく解説いただきました。
基礎をつかんで有意義なソースコード管理を
今回の勉強会では、SourceTree などのGUI ソフトや GitHub、Bitbucket といったホスティングサービスの操作説明はあえて行わず、Git を使ったソースコード管理の基礎について丁寧に解説いただきました。
ボーンさん曰く「Git はあくまでもツールのひとつ」。ソースコード管理の意義と基本の概念を理解することで、導入がしやすくなったのではないでしょうか。
ご参加いただいた皆さん、企画・登壇いただいたボーンさん、ありがとうございました!
写真撮影:間嶋沙知