GitHub Desktop を使って楽々 GitHub 入門

GitHub はオープンソースソフトウェア開発のためのサービスです。
ただ、 GitHub は名前の通り、バージョン管理システムに Git を使っており、若干、最初のハードルが高いです。 そのせいか、 GitHub では GitHub Desktop というアプリを提供しており、 なるべく簡単に使えるようになっています。
そこで、今回は GitHub Desktop を使って、 Git の知識があまりなくても GitHub を利用したちょっとした開発ができるような入門記事を書いてみました。

ちなみに、今回は GitHub を使った開発の入門です。 単に GitHub に公開されているソースを利用したいという場合は以前の記事をご覧ください。

GitHub とは

OSS ホスティングサービス

GitHub は OSS ホスティングサービス の一つです。
OSS(Open-Source Software) ホスティングサービス はソフトウェア開発、公開のための Web サービスです。 オープンソースといってますが、有料版ならオープンソースでなくても使えるものもあります。
このサービスとしては次の機能があるのが普通です。

機能 主な用途
バージョン管理システム ソースコードの公開、管理
バグ追跡(プロジェクト管理)システム 要望、バグ報告
Wiki などのドキュメントシステム ソフトウェアの説明

GitHut の特徴

OSS ホスティングサービスのサイトはいっぱいあるのですが、その中でも GitHub はトップと言っていいほど、 メジャーなサイトです。
その特徴は次の 2 つです。
  • ドキュメントもソースと同じように管理
  • バグ修正などのパッチの提供とマージがやりやすい
通常 Wiki などでは Web 上でないと修正できません。 それに対し、GitHub ではドキュメントとソースが一緒に管理され、自分の好きなエディターで編集できますし、 Web からドキュメントを編集することもできます。
この GitHub のドキュメントは GitHub 用に拡張された MarkDown で記述します。
Git の分散バージョン管理システムによる分岐(Fork)を利用することによって、 バグ修正などを送ることが簡単に出来るようになってます。 受け取る側も、その修正分の取捨選択や部分的なマージなどがやり易いです。
また、ソースと一緒に管理しているので、同じことがドキュメントに対してもできます。


そのかわりといっては何ですが、 GitHub ではバージョン管理システムとして Git しか選べません。
Subversion のような集約型に比べると分散バージョン管理システムは難解ですし、 Git は機能が豊富な分とくに厄介です。

GitHub Desktop とは

GitHub Desktop は GitHub が提供しているデスクトップアプリで、 GitHub を利用した開発を簡単にするための Git のフロントエンドプログラムです。

ただ、逆にいうと簡単なことしかできません
Windows ではコマンドラインで Git を使うための 『 Git Shell 』 が付いてきます。 基本的なことは簡単にできるようになっているけど 「複雑な作業はコマンドラインからやって」ということだと思います。

今回は入門なので、最小限のことしか説明していません。 それ以外のことは必要な時にぼちぼち覚えていってください。
なお、 GUI から複雑な作業もやりたいという場合は TortiseGit の方がおすすめです。

GitHub のアカウントを作成

GitHub を利用するにあたって、まず必要なのは GitHub のアカウントです。

サイトにアクセスして、[Sign up] から作成します。 github_signup.png


ユーザー名(Username)、メールアドレス(Email Address)、パスワード(Password) を入力し、作成します。

github_usrnew.png

GitHub Desktop のダウンロードとインストール(Windows)

次に GitHub Desktop を用意します。

ダウンロード

GitHub Desktop のサイトからインストーラーをダウンロードします。 github_dtdl.png

インストール

インストーラー(GitHubSetup.exe) を実行するとインストールされます。

インストール中に設定するようなものはなく、そのまま完了します。
そのかわり、初回起動時に GitHub アカウントの設定が要求されます。


[Log in] : ユーザー名(またはメールアドレス) とパスワードを入力します。

github_dtinst1.png


[Configure] : コミット時のユーザー名と公開するメールアドレスを設定します。
そのままでかまいませんが、アカウントのメールアドレスと公開するアドレスを変えたい場合などに変更します。

github_dtinst1.png


[Repositories] : まだローカルにリポジトリーはないので、そのまま [Skip] で終了します

github_dtinst1.png

GitHub Desktop の設定

初回起動時に設定するアカウントと Configure は後から設定画面で変更することもできます。
設定画面はメイン画面右上にある歯車マークの [Options] から開くことができます。
github_dtopt1.png

github_dtopt2.png

これ以外で設定しておいた方がよいのは [Clone path] です。 これは後述する Clone 先のディレクトリーのデフォルトとなるパスです。

リポジトリー(プロジェクト) の作成

リポジトリー(Repository)というのはバージョン管理システムでは「ソースなどを履歴を含めて保存するもの」です。
プログラムなどの開発単位のことをよくプロジェクトと呼びますが、 GitHub ではプロジェクトに対し、一つリポジトリーを用意するので、 リポジトリーがプロジェクト的な意味も持ちます。
GitHub で開発を行うにはこのリポジトリーを用意する必要があります。

GitHub Desktop で作ることもできるのですが、 いくつかファイルを自動生成してくれるので、 リポジトリーの作成は GitHub のサイトで行う方がよいと思います。


作成するには、 GitHub のサイトに行き、ログイン(Sign in) しておきます。 [Start a project] や [New repository] からリポジトリーの作成ページに移動します。
ちなみにここではプロジェクトとリポジトリーが同じ意味で使われていますが、 GitHub では Project をタスク管理機能的なものとして呼ぶこともあります。

github_projnew.png


設定項目を入力し、 [Create repository] を選択するとリポジトリーが作成されます。
github_projprop.png


設定する項目は次の項目です。
No. 項目名 説明
1 Repository name リポジトリーの名称
2 Description リポジトリーの説明
3 Public or Private 非公開(Private)は有料なので、 Public のまま
4 Initialize this repository with a README チェックを入れると README.md ファイルを生成
5 Add .gitignore プログラミング言語の選択
6 Add a license OSS ライセンスの選択



4, 5, 6 の選択で作成時にファイルが自動生成されます。
  • README.md
  • .gitignore
  • LICENSE
GitHub ではこれらのファイルを作成しておくことが推奨されています。

ドキュメント - README.md

GitHub ではドキュメントに Markdown を使うと書きましたが、 プロジェクトのトップページで表示されるドキュメントは README.md をもとに作成されます。

チェックを入れていると、指定したプロジェクトの名前と説明を使った README.md ファイルが生成されます。
# hello-world
Sample project

プログラミング言語の選択 - .gitignore

C 言語のオブジェクトファイル(.o)などソース管理に入れたくないファイルというものがあります。 Git ではそういった無視するファイルは .gitignore に記述します。

無視するファイルの対象は言語ごとに大体決まっています。 開発で使うプログラミング言語を指定すると、言語に合わせた .gitignore が用意されます。

github_projlang.png

OSS ライセンスの選択 - LICENSE

公開しているソースに対するライセンスを指定します。 ライセンスを選択するとその条項が記載された LICENSE ファイルが追加されます。
github_projlicense.png


OSS(オープンソース) ライセンスはソースの自由な再配布や利用などを保証するものです。 これは 必ず何か選択しておきましょう。
創作物というのは公開しているからといって、許可なく自由にしていいいいものではありません。 OSS ライセンスを指定してないのは、逆に再配布や利用を厳しく制限することになってしまいます。


選択するにしてもライセンスには多くの種類があるのですが、太字でリストに載っているものについて簡単に説明します。
MIT ライセンス
「免責事項」、「著作権表示義務」だけの ゆるいライセンスです。
Apache ライセンス
MIT ライセンスの内容に加え、 特許権の許可が明確にされていて、より使う側にやさしくなっています。
ただし、使う場合に 「 Apache ライセンスのコードを使っている」ことの明記も要求されます。
GPL (GNU General Public Licence)
二次生成物 もソースを公開する必要があり、 GPL のライセンスを継承していかなければいけません。 オープンソースを推進したい人向けです。
特にこだわりがないのであれば、 「MIT ライセンス」 を選択しておけばよいのではないかと思います。

GitHub Desktop を使った開発

リポジトリーを作ったら、それに対し開発を進めていくことになります。 ここから GitHub Desktop を使っていきます。


まず、 GitHub のリポジトリーに対応するローカルリポジトリーの準備をします。
その後、次の手順を繰り返して開発することになります。
  1. ファイルの追加や編集
  2. 変更内容の登録
  3. GitHub のリポジトリーに反映

ローカルリポジトリーの準備 - Clone

開発を始めるためには GitHub のサイトで作ったリポジトリーを自分の PC 上に持ってくる必要があります。
複製して新しく作るので、 Git ではこの作業を クローン(Clone) と呼びます。
github_gitclone.png

GitHub Desktop では画面の左にあるリポジトリーのリストから操作したいリポジトリーを選択して使用します。
リストになければ選べないので、まずここに追加する必要があります。
リポジトリーはリストの上部にある [+] から追加します。

github_dt.png


[+] を押すと 3 つのタブが選べるので [Clone] を選択します。
この [Clone] は 「 Git のクローン」と 「 GitHub Desktop のリストへの追加」を一緒に行います。
ちなみに [Add] はリストへの追加のみ行うもので、すでにローカルにクローン済みのリポジトリーがある場合に使います。
[Create] はローカルに新しくリポジトリーを作るものですが、サイトで作った方がいいので、使いません。

[Clone] を選択すると GitHub の自分のリポジトリーがリストで表示されます

github_dtclone.png

選択すると 対象のディレクトリーを聞かれ、そこにクローンされます。
クローン先のディレクトリーにソースファイルがおかれ、履歴などのリポジトリー情報は .git ディレクトリー以下におかれます。
github_dtclone_dir.png

(注) : .git は隠しファイルなので、見えなくなっているかもしれません。

ソースの編集

クローンしたディレクトリーで、ファイルを追加したり、編集したりといった作業を行います。
普通に編集してください。

ソースの変更内容の登録 - Commit

ソースを編集し、適当なタイミングで変更内容をリポジトリーに登録します。 これを コミット(Commit) と呼びます。
コミットはバックアップのように一日一回行うといったものでなく、 タイミングは機能追加したり、バグ修正したりといった意味があるまとまりで行います。
github_gitcommit.png


GitHub Desktop でのコミットは簡単です。 対象リポジトリーを選択し [Changes] を開くと、前回のコミットから変更されたファイルがリストに表示されます。

github_dtcommit.png

ここで変更内容に対するコメントを入力すると [Commit to xxx] が選択できるようになります。
これを選択するか [Enter] キーを押すとコミットされます。

登録した変更内容とコメントは [History] で確認できるようになっています。


なお、 Git では空ディレクトリーの登録は出来ないようになっています。 ディレクトリーを作成しただけでは変更リストには表示されないので注意してください。

GitHub リポジトリーとの同期 - Sync

ここで注意しないといけないのが、 変更内容はコミットではまだローカルのリポジトリーにあるだけということです。
ローカルのリポジトリーの内容を GitHub のリポジトリーに反映する必要があります。
github_gitsync.png


画面右上にある [Sync] を実行することにより GitHub のリポジトリーと同期し、変更が反映されます。

github_dtsync.png

「直接 GitHub のリポジトリーにコミットすれば早いのに」と思うかも知れません。
しかし、直接サイトにコミットするのが集中型で、ローカルにもリポジトリーを用意して連携するのが分散型と呼ばれるバージョン管理システムです。 一人でほそぼそと開発している分にはメリットを感じることはないと思いますが、 そこは我慢して使ってください。

無視するファイルの追加

[Changes] のリストでは変更されたファイルすべてが表示されます。 変更内容をコミットしたくないファイルがある場合、 一時に登録したくないだけならチェックを外しておきます。

言語の選択 のところでも書きましたが、ソース管理の対象にしたくないファイルというものもあります。 そういったファイルは毎回変更のリストにでてくると邪魔です。
このファイルを .gitignore に追加すると無視されるようになります。 これは右クリックのメニューから行うことができます。

github_dtignore.png


メニュー 無視対象
[Ignore file] 選択ファイル(hello-world.suo)
[Ignore file all .xxx files] 選択ファイルと同じ拡張子のファイルすべて(*.suo)



ソース管理する対象の方針ですが、基本的に ソースから生成されるファイルは管理の対象外 にします。
これは生成できるものを登録するのは無駄ですし、むしろ不整合を起こす危険があるためです。

無視するディレクトリーの追加

C++ での Relese, Debug ディレクトリーや JavaScript での node_modules など "ディレクトリー内をまとめて管理対象外" としたい時があります。
実はこの作業は GitHub Desktop からはできません。 しかし、できないとリストにずらっとでて邪魔になので、おまけで説明しておきます。


ディレクトリーを無視したい場合は .gitignore に直接追加します。このファイルは無視対象が一行ずつ記述されたテキストファイルです。
例えば Relese, Debug という名前のディレクトリーを対象外としたい場合は以下のように記述します。
  :
*.out
*.app
  :
*.out
*.app
Relese
Debug
スポンサーサイト
 
このページをシェア
アクセスカウンター
アクセスランキング
[ジャンルランキング]
コンピュータ
33位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
3位
アクセスランキングを見る>>
カレンダー(アーカイブ)
プルダウン 降順 昇順 年別

09月 | 2016年10月 | 11月
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -


はてな新着記事
はてな人気記事
ブロとも申請フォーム
プロフィール

yohshiy

Author:yohshiy
職業プログラマー。
仕事は主に C++ ですが、軽い言語マニアなので、色々使っています。

はてブ:yohshiy のブックマーク
Twitter:@yohshiy

サイト紹介
プログラミング好きのブログです。プログラミング関連の話題や公開ソフトの開発記などを雑多に書いてます。ただ、たまに英語やネット系の話になることも。