オープンソースソフトウエア開発の現場でよく聞かれる「Git」と「GitHub」。両者の名前はよく似ていますが違うものです。言葉の意味を整理します。
Gitは、「分散型バージョン管理システム」と呼ばれる、ファイルの変更履歴とファイルのバックアップを記録するためのデータベースです。ソフトウェア開発プロジェクトのような、大量のファイルで構成される資料を多人数で編集する状況を想定しています。
分散型バージョン管理とは、ひとつのソフトウェア開発プロジェクトに対して「リポジトリ」(ファイルの変更履歴とファイルのバックアップを保管するデータベース)を複数設置し、データの同期を定期的に行って統一性を確保する管理手法です。
Gitの場合は、サーバー上にインストールされたGitが原本を管理し、各開発者の手元にあるGitは原本の複製を管理します。
GitHubは、Gitの機能をインターネット上で提供するWebサービスです。サーバー上にGitをインストールする代わりにGitHubを使用します。GitHubは、Gitとの互換性を保ちながらGitにはない機能を提供し、オープンソースソフトウェア開発におけるバージョン管理の主流になりました。
Gitはアプリケーション、GitHubはGit互換のWebサービスです。
概ね以下の手順で作業が進行します。
- 管理者がGitHubサーバー上にリモートリポジトリを置く
- 開発者が自分のPCにローカルリポジトリを複製する(クローン)
- 開発者がローカルリポジトリからファイルを取り出す
- 開発者がファイルを編集する
- 開発者がローカルリポジトリにファイルを戻す(コミット)
- 開発者がローカルリポジトリの変更をリモートリポジトリに反映させる(プッシュ)(管理者承認が要る場合はプルリクエスト)
Gitは元々GUIを持たないコマンドライン式のアプリケーションでしたが、コマンドラインに不慣れなユーザーに不評であったため、GitをコントロールするためのGUIアプリケーション、およびGit互換のGUIアプリケーションが多数登場しました。これらを総称して「Gitクライアント」と呼びます。
Gitクライアントと呼ばれるアプリケーションは多数ありますが、GitHub社の公式アプリケーションとして配布されている「GitHub Desktop」、同じくGitHub社の配布するGitクライアント機能付きテキストエディタ「ATOM」に人気があります。
それぞれの使い方は以下のページを参照してください。
note: 実践02. コマンドラインはもう不要・GitHub Desktop
note: 実践08. Git対応高機能テキストエディタ・ATOM
GitHubのすべての機能を説明し尽くすことはここではできませんが、GitHub PagesとMDwikiでウェブサイトを構築する上で必要なGitHubの操作については以下のページを参照してください。
note: 04. これだけ知ればGitHub Pageを使える!Git用語
note: 05. たった2つのファイルでサイト構築・MDwiki
- 01. なにが違うの?GitとGitHub
- 02. コマンドラインはもう不要・GitHub Desktop
- 03. 完全無料のウェブサーバー・GitHub Pages
- 04. これだけ知ればGitHub Pageを使える!Git用語
- 05. たった2つのファイルでサイト構築・MDwiki
- 06. 圧倒的な作業の効率化!マークダウン記法
- 07. 真にミニマルなマークダウンエディタ・Typora
- 08. Git対応高機能テキストエディタ・ATOM
- 09. MDwikiをカスタマイズする・基本編
- 10. MDwikiをカスタマイズする・HTML編
- 11. MDwikiをカスタマイズする・CSS編
- 12. 弱点克服!MDwikiをGoogle検索の対象にする