GitHub(ギットハブ)は、GitHub社という会社によって運営されている OSS のホスティングサービスで、分散型バージョン管理室システム Git の仕組みを利用して、プログラムのソースコードをはじめ、様々なファイルを保存、公開することができるようにしたものです。Firefox, Atom といった著名なものから、個人の開発したアプリやWebページまで、多くのソフトウエアのソースコードをホスティングしています。最近では、プログラムのソースコードだけでなく、公的機関が文書を公開する場所としても活用されています。情報をオープンにする使い方であれば、無料で利用可能です。
GitHubを利用するには、まずアカウントの取得(Sign Up)が必要です。手続きは簡単でメールアドレスの認証が済めばすぐに利用できます。
以後、GitHubを使う場合は、Sign in をクリックして、ID,PW を入力してログインして下さい。
はじめに、GitHub上に新規のリポジトリを作ります。リポジトリとは、Webサイトやファイルセットなどを GitHub 上で管理するためのプロジェクトフォルダ・・とご理解下さい。リポジトリはいくつでも作ることができます。
https://(ユーザー名).github.io/(リポジトリ名)
以下のように大きく3つの方法があります。
以下、順に説明します。
リポジトリとオーナー(あなた)は、GitHub上のリポジトリのファイルに対して、GitHub のエディタを使って直接編集を行うことができます。
以上は、簡易的な編集方法です。以下、ローカルで編集を行ってリポジトリを更新する方法を紹介します。
次に、GitHub のリポジトリのメニューを使って、リポジトリを更新する方法を紹介します。
以上で、リポジトリ上のファイルが最新に更新されます。
本格的に活用する場合は、ローカルリポジトリにクローン(リポジトリの複製)を作成して、手元のエディタで編集 > ローカルでコミット > リモートへプッシュ・・という手順でリポジトリを更新していきます。
Gitクライアントを使う方法と、Terminalコマンドを使う方法があります。
前提として、Gitクライアントというアプリケーションを、ローカルPC上にインストールすることが必要です。有名なものに SourceTree がありますが、リモートのサービスとしてGitHub を使う前提なので GitHub Desktop がおすすめです。
MacOS では、Gitの環境がインストール済みなので、すぐに使えます。
$ git --version git version 2.20.1
$ git clone https://github.com/koichi-inoue/SampleSite.git Cloning into 'SampleSite'... : Unpacking objects: 100% (42/42), done.
$ cd(リポジトリ名)
$ ls -a . .. .git index.html style.css.git という管理フォルダ(隠しファイル群)も見えるはずです。
$ echo ''Hello World!'' > test.txtこの事例では、echo コマンドのリダイレクトでファイルを作っています。普通にエディタで何かを書いて保存・・でもOKです。
$ git add test.txt
$ git commit -m "ファイルを追加''mオプションは、コミットの際のメッセージを付加します。
[master ff11e2b] ファイルを追加 1 file changed, 1 insertion(+) create mode 100644 test.txt
$ git push origin master初回の作業では、GitHub のIDとPWを尋ねられるので、これを入力する必要があります。
Enumerating objects: 4, done. Counting objects: 100% (4/4), done. Delta compression using up to 4 threads Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 348 bytes | 348.00 KiB/s, done. Total 3 (delta 0), reused 0 (delta 0) To https://github.com/koichi-inoue/SampleSite.git aeb9e0b..ff11e2b master -> master
以上、Terminal の Gitコマンドによるリポジトリの更新方法でした。
個人で利用する場合同様に、GitHub上に中央リポジトリが必要となります。一般にリーダーが上記と同じ手順でこれを構築します。
共同編集を行うには、当該リポジトリに招待相手の GitHubアカウントを指定して招待作業を行う必要があります。
以上で、招待された側がフィアルの共同編集に参加することができます。
以下のように大きく3つの方法があります。
具体的な作業は、個人利用の場合(前の節で説明済み)と同じです。
ここで重要なことは「中央リポジトリを常に正の状態(Positive State)に保つ」ということです。中央リポジトリは随時アップデートされていて、手元のファイルが古くなっている可能性があります。したがって編集作業においては、事前にプル(リモートの変更をローカルに反映)することが必要です。自身の変更をプッシュ(ローカルの変更をリモートに反映)する場合も、まず最新の状態をプルして、自身の変更とマージ(併合)してから中央へプッシュ・・という手順になります。
プルできる状態(つまり中央の更新が先行している)にもかかわらず、プッシュしようとすると、警告が出る仕組みになっているため、中央のファイルは行き戻りなく更新されます。中央リポジトリでは直接マージは行わない。あくまでローカルリポジトリで最新データをマージした上で作業を進めます。プッシュは基本的に中央の状態を前進させる場合にのみ適用されます。
右図(クリックで拡大)は、ローカルの変更をリモートにプッシュする様子です。ahead という表記は、ローカルの作業がリモートに先行していることを意味し、この状態でプッシュが可能です。プッシュが反映されると、GitHub上でもコミット単位での変更点が確認できます。
GitHubのサービスにおいて、最も注目されているのが Pull Requestです。これはローカルリポジトリでの変更を他の開発者に通知する機能で、機能追加や改修などの作業内容を関係者に通知するかたちで、共同編集者間のコミュニケーションが生まれます。GitHubが謳うソーシャルコーディングの要となる機能です。
フォークとは他のユーザーのリポジトリを自分のアカウント内に複製することを言います。任意のユーザに対し、以下のような手順でその開発に貢献、あるいは派生版を作成することができます。
フォーク(複製)したリポジトリは自分の所有物なので、自由に更新ができます。これは従来のCopyrightとは異なるOSS開発に特有の発想です。
ここから派生した別のプロジェクトが動き出すことも多く、実際OSSには多くの派生版が存在します。
プログラムのバグや機能追加の要望などを管理するツールとして Issueという一種のSNS機能があります。ここには誰でも自由にコメントや画像を投稿することができるため、開発に関わる議論をわかりやすく可視化することができます。組織によっては、これをディレクター、デザイナー、営業スタッフも含めて活用しています。
GitHubリポジトリから直接Webサイトをホストする機能としてGitHubPagesがあります。開発中のリポジトリにHTML、CSS、JavaScriptで構成された静的なウェブサイトがある場合、これをGitHubサブドメインでホストすることができます。更新と同時にチェックができる点でWeb制作のプロジェクトにとっては特筆すべき機能です。
GitHubのアカウントを持っている人であれば、Gistを使って、ソースの埋め込みコードを取得することもできます。
以上。