(Photo by:Jay Cross)
ここ数年、開発環境に大きな変化があった方も多いと思います。
バージョン管理をSubversionからGitに切り替え、テキストエディターをSublime TextからAtomに、不具合管理をRedMineからTrelloへ移行など、新しいツールの導入が活発です。
業務でもGitHubリポジトリを利用する企業が増え、GitHubを中心とした開発環境が目に見えて増えてきました。
この記事ではGitHub社のツールを使った開発環境の変化を紹介します。
GitHubの導入
GitHub : https://github.com/
GitHubは多くのオープンソースプロジェクトが依存する重要な存在になりました。業務でもGitHubのプライベートリポジトリでソースコードを管理し、オープンソースのようにブランチを作りプルリクエストを発行して変更をマージする形でGitHubを導入して案件を進める企業が増えています。
バージョン管理ホスティングサービスの活用
オフィスで使わなくなったPCにSubversionやGitサーバーをインストールして、社内共有のローカルリポジトリとして運用した経験はないでしょうか?
今ではGitHubのような外部のホスティングサービスにソースコードを預けるのはセキュリティ上の問題になると心配される事も減りました。
ホスティングサービスを活用すると自社運用でありがちな、ディスクが壊れた、サーバー更新に失敗した、運用できる人が離職した、これらのトラブルに悩まされなくなります。
信頼度の高いSNS
GitHubは個人のプロフィールを掲載できます。ソースコードを見る以外に、関わっているプロジェクトが獲得したスターの数が表示される、フォローしているユーザー一覧が見られる等のシンプルなSNS機能を備えています。
このGitHubのプロフィールは一定の信頼を得ており、プログラマの採用に当たりGitHubアカウントを必ず見る企業もあります。転職を有利にするために、スターを多く獲得する、有名プロジェクトに貢献履歴が残そうと活動するユーザーもいます。
充実した連携ツール
GitHubのプロジェクト管理機能は充実しているとは言えません。GitHub Wikiでドキュメント作成・管理を行っているプロジェクトは少数でしょう。
その替わりに開発で便利なGitHubと連携できるツールが多数あります。
SlackやHipChatのチャットツールはGit上の変更を検知するWeb Hookを使ってプロジェクトの最新状況をチャット上に通知してくれます。
後述するテキストエディターのAtomとも連携しています。
Travis CIはGitHubと連携した自動テストを実施するCIツールで多くのGitHubプロジェクトが採用しています。
GitHub Desktop
GitHub Desktop : https://desktop.github.com/
各社から使いやすいGUIのGitクライアントが出ていますが(TortoiseGitやSourceTree)、その中でもGitHub Desktopはプロジェクト進行をGitHubワークフローで行うのに特化した異色のGitクライアントです。
GitHubワークフローとは?
GitHubワークフローはGitワークフローと名称が似ていますが別物なので注意して下さい。Gitワークフローの問題点の解決と簡略化を行ったのがGitHubワークフローです。
Gitワークフローが「リリース」を主眼に置いた堅牢なワークフローとすると、GitHubワークフローは頻繁な「デプロイ」に注力した軽量なワークフローです。
Gitワークフローではmasterブランチを何時でもリリースできる状態に保ち、masterブランチから機能単位でブランチを作成しマージを繰り返します。機能を分割する単位を小さくして、頻繁にブランチ作成、マージ、ブランチ削除を繰り返すのが特徴です。
GitHub Desktopを使ったバージョン管理
GitHub Desktop を初めて使うとGitと全く異なる操作感で戸惑うと思います。
一般的なGUIのGitクライアントはツリービューで変更のあったファイルを選択してadd / commit を行いますが、GitHub Desktopは変更があったファイルがリストアップされて、変更差分を見ながらどれをコミットするかを選ぶだけです。
GitHub Desktop ではGitHubワークフローで行う以下の流れと、これらに関連した操作(例えばファイルの変更取り消し)「のみ」が可能です。
- ブランチを作成
- 変更をコミット
- Publish・Sync(ブランチのプッシュと同期)
- プルリクエストの発行
- マージ後にブランチを削除
GitHub Desktopは非常に限定された操作しか行えないため、例えばGitを使う中で良く行う以下のような操作はコマンドシェルを起動して行います。
- rebase(作業履歴の統合)
- commit –amend(コミットの統合)
- reset –soft HEAD^(変更を残して1つ前に戻る)
コマンドシェルで操作の履歴を見る
ローカルで行われたgitの操作履歴を見るとGitHub Desktopがどのような操作を行っているのか分かります。
GitHub Desktopを使っているフォルダでgit reflogを実行すると以下キャプチャのように操作履歴が表示されます。
GitHub Desktopは便利だけど、実際に何を行っているのか分からない。このような疑問を持つと思います。操作履歴を小まめに見るようにすると、疑問が解消されて行きます。
Atom
Atom: https://atom.io/
GitHub社が開発している無料のテキストエディターAtomを使う開発者が増えています。特にウェブ系で人気があり、Sublime TextやVimからAtomに切り替えた、または併用している方も多いと思います。
これまでVisual StudioやEclipse等のIDEを使っていた開発者も、JavaScriptやCSS/SCSSのコーディングにAtomを使い始めています。
AtomはReact/ meteor等のNode.jsを使ったプロジェクトでの定番エディターになりつつあります。
GitHub Desktopとの連携
GitHub DesktopにはGitリポジトリをAtomプロジェクトで開く機能があります。AtomにGitリポジトリの状態を表示するプラグインを入れると、Atom上とGitHub Desktop上で同期して開発を進められます。
豊富なプラグイン(パッケージ)
プラグイン:https://atom.io/packages
AtomはIDEではありませんが、多様なプラグインを追加して以下に列挙するような機能を持たせられます。
- 各種言語の構文のハイライト
- 各種言語のシンタックスシュガーのサポート
- 各種言語の変数や関数の自動補完
- ソースコードの自動整形
- バージョン管理をツリービューから実施
- Node.jsなど一部実行環境のデバッガー
まとめ
GitHub社が提供している開発環境を見ると総じて今風です。比較的に開発規模が小さいウェブサイト開発やスタートアップの現場で特に人気が高いです。
ウェブの開発環境が特定の実行環境に依存していない(Atomにはnode.jsが入っています)ためか、どれもシンプルな構成です。初期導入のハードルが低く抑えられています。
情報量が多く学習コストも低く抑えられているため、1日あれば実際に試して今風のウェブ開発を体験できると思います。
本ブログは、Git / Subversionのクラウド型ホスティングサービス「tracpath(トラックパス)」を提供している株式会社オープングルーヴが運営しています。
エンタープライズ向け Git / Subversion 導入や DevOps による開発の効率化を検討している法人様必見!
「tracpath(トラックパス)」は、企業内の情報システム部門や、ソフトウェア開発・アプリケーション開発チームに対して、開発の効率化を支援し、品質向上を実現します。
さらに、システム運用の効率化・自動化支援サービスも提供しています。
”つくる情熱を支えるサービス”を提供し、まるで専属のインフラエンジニアのように、あなたのチームを支えていきます。
No Comments