Git、GitHubを教える時に使いたい資料まとめ


## 0. はじめに

業務で技術指導を行うにあたり、Git、GitHubについて説明する機会が多くなってきました。そこで、そんな時に使えそうな資料を整理してみました。

今後も新しい資料を見つけたら、随時更新していきたいと思います。またおすすめがあれば、是非ご紹介ください。

### 0.1. 読者対象

本記事の対象は、以下の様な方々です。

* Git、GitHubの使い方について、他のメンバーに説明、指導する必要がある。
* Git、GitHubの使い方について自習したい。

本記事にて紹介する資料は、以下の様な方々を想定して選別しています。

* コンソールの操作にはある程度慣れている。
* Subversionなど、他のバージョン管理システムの使用経験がない。

## 1. インタラクティブなチュートリアル

Webブラウザ上で動作するインタラクティブ（対話的）な教材です。`git`コマンドなどの環境構築は不要で、環境を破壊してしまうこともないため、手軽に学ぶことができます。

### 1.1. [Git Tutorial - Try Git](https://try.github.io/)

GitHub公式のWebチュートリアルです。

* 言語: 英語
* レベル: 初心者向け
* 登場するコマンド: `git init`、`git status`、`git add`、`git commit`、`git log`、`git remote add`、`git push`、`git pull`、`git diff`、`git reset`、`git checkout`、`git branch`、`git rm`、`git merge`

![try_git.png](https://qiita-image-store.s3.amazonaws.com/0/58479/c150d4fa-8290-7f45-d504-4a90d6d03f14.png)

### 1.2. [Learn Git Branching 日本語版](http://k.swd.cc/learnGitBranching-ja/)

アニメーションが分かり易いWebチュートリアルです。その名の通り、ブランチ、マージなどについての内容が中心となっています。

* 言語: 日本語（ただし、一部に英語による表記が残っている）
* レベル: 中級者向け
* 登場するコマンド: `git commit`、`git branch`、`git checkout`、`git merge`、`git rebase`、`git reset`、`git revert`、`git cherry-pick`
* メモ:
    * 14のレベルが定義されている。
    * macOS版Google Chrome（58.0.3029.110）ではレンダリングが乱れる。
    * macOS版Safari（10.1.1）では正常にレンダリングされた。
    * `show solution`コマンドを使うことで、正解を見ることができる。

![learn_git_branching.png](https://qiita-image-store.s3.amazonaws.com/0/58479/06d72f48-c9b0-0ad4-a399-574c7031b7da.png)

## 2. ビデオ（動画）中心のチュートリアル

### 2.1. [On Demand Training](https://services.github.com/on-demand/)

GitHub公式のビデオチュートリアルです。Gitそのものだけでなく、GitHubの使い方について学ぶことができます。

* 言語: 英語
* レベル: 初級者〜中級者向け
* コンテンツ:
    * GitHub 101: Introduction to GitHub
    * GitHub 102: Using GitHub Desktop
    * GitHub 103: Using the Command Line

![github_on_demand.png](https://qiita-image-store.s3.amazonaws.com/0/58479/3db8f13d-e632-0a11-370f-47535831f74b.png)

## 3. テキスト中心のチュートリアル

### 3.1. [サルでもわかるGit入門 〜バージョン管理を使いこなそう〜 | どこでもプロジェクト管理バックログ](http://www.backlog.jp/git-guide/)

会話形式で基礎からGitを学ぶことができるページです。イラスト、図が多く、とても分かり易いです。

* 言語: 日本語
* レベル: 初級者〜中級者向け
* コンテンツ:
    * 入門編 〜Git初心者の方〜
    * 発展編 〜Gitを使ったことある方〜
    * プルリクエスト編 〜コードレビューする文化を〜
    * 逆引きGit 〜あれ何だっけ？という時に〜

![sarudemowakaru.png](https://qiita-image-store.s3.amazonaws.com/0/58479/d6fdc514-4d04-3f77-6182-4519dd7e5226.png)

## 4. スライド

### 4.1. [いつやるの？Git入門 v1.1.0](https://www.slideshare.net/matsukaz/git-28304397)

適度にGitの内部構造を説明しつつ、Gitの基本的な操作について説明した資料です。図が多くてとても分かり易いです。

* 言語: 日本語
* レベル: 初級者〜中級者向け
* メモ:
    * スライド204枚。それなりのボリューム。

![ituyaruno_v1.1.0.png](https://qiita-image-store.s3.amazonaws.com/0/58479/a216d35c-b68e-55ce-f912-a8f3c71ca601.png)

### 4.2. [こわくない Git](https://www.slideshare.net/kotas/git-15276118)

「コミットグラフ」に焦点を当てた内容です。図が多くとても分かり易いです。

* 言語: 日本語
* レベル: 中級者〜上級者向け
* メモ:
    * スライド186枚。それなりのボリューム。

![kowakunai_git.png](https://qiita-image-store.s3.amazonaws.com/0/58479/63803023-1e93-f56a-7574-c037ffa1214a.png)

### 4.3. [やりなおせる Git 入門](https://www.slideshare.net/TomohikoHimura/git-22237343)

「インデックス」と「ワークツリー」に焦点を当てた内容です。

* 言語: 日本語
* レベル: 中級者
* メモ:
    * スライド75枚。

![yarinaoseru.png](https://qiita-image-store.s3.amazonaws.com/0/58479/57900584-226e-8c43-b15a-7ff2131c38ca.png)

## 5. 電子書籍 / リファレンス

### 5.1. [Pro Git 第2版 日本語版](https://git-scm.com/book/ja/v2)

Gitのコマンド、機能などについて網羅的に記述されている資料です。リファレンス的に用いるのがおすすめ。

* 言語: 日本語
* レベル: 中級者〜上級者

![pro_git.png](https://qiita-image-store.s3.amazonaws.com/0/58479/e394de75-3f90-6e6c-7a77-de1b8e0979e7.png)