GitHub実践入門
https://gyazo.com/f92c689a49d3420bcd288f8e020388a4
第1章:GitHubの世界へようこそ
1.1 GitHubとは
GitHub社とoctocat
ただのGitリポジトリのホスティングではない
GitHubの利用状況
1.2 GitHubを使うと何が変わるのか
コラボレーションの形が変化する
開発者たちが化学反応を起こすPull Request
特定のユーザへのコメント
GitHub Flavored Markdown
他チームのソフトウェアが今まで以上に見える
オープンソースソフトウェアの世界と同じ開発スタイル
1.3 ソーシャルコーディングとは
1.4 ソーシャルコーディングをするべき理由
世界を閉ざさず,多種多様な文化を見よ
コードを書けるプログラマが求められている
GitHubの最大の特徴は「人に目を向ける」こと
1.5 GitHubが提供する主な機能
Gitリポジトリ
Organization
Issue
Wiki
Pull Request
1.6 まとめ
参考資料
第2章:Gitの導入
2.1 誕生の背景
2.2 バージョン管理とは
集中型と分散型
集中型
分散型
集中型と分散型はどちらが良いか
2.3 インストール
MacとLinuxの場合
Windowsの場合
コンポーネントの選択
環境変数の設定
改行コードの扱い
Git Bash
本書での環境
2.4 初期設定
名前とメールアドレスを設定する
コマンド出力を読みやすくする
2.5 まとめ
第3章:GitHubを利用するための準備
3.1 利用する前の準備
アカウントの作成
アイコンの設定
SSH Keyの設定
公開鍵の登録
ソーシャル機能の利用
3.2 実際に使ってみよう
リポジトリの作成
Repository name
Description
Public,Private
Initialize this repository with a README
Add .gitignore
Add a license
リポジトリにアクセス
README.md
GitHub Flavored Markdown
コードを公開
作成したリポジトリをcloneする
コードを作成する
コミットする
pushする
3.3 まとめ
第4章:Gitを操作しながら学ぶ
4.1 基本的な操作
git init──リポジトリを初期化
git status──リポジトリの状態を確認
git add──ステージ領域へファイルを追加
git commit──リポジトリの歴史を記録
1行のコミットメッセージを記述する
詳細なコミットメッセージを記述する
コミットを中止する
コミット後の状態を確認する
git log──コミットログを確認
コミットメッセージの1行目のみを表示する
指定したディレクトリ,ファイルのみのログを表示する
ファイルの差分を表示する
git diff──変更差分を確認
ワークツリーとステージ領域の差分を確認する
ワークツリーと最新コミットの差分を確認する
4.2 ブランチの操作
git branch──ブランチを一覧表示
git checkout -b──ブランチを作成し,切り替える
feature-Aブランチに切り替えコミットする
masterブランチへ切り替える
1つ前のブランチに切り替える
トピックブランチ
統合ブランチ
git merge──ブランチをマージ
git log --graph──ブランチを視覚的に確認する
4.3 コミットを変更する操作
git reset──歴史を戻る
feature-Aブランチを分岐する前に戻る
fix-Bブランチを作成する
feature-Aブランチをマージしたあとの状態に進む
コンフリクト(競合)を解消
コンフリクト部分を確認し解消する
解消した結果をコミットする
git commit --amend──コミットメッセージを修正
git rebase -i──歴史を押しつぶして改変
feature-Cブランチを作成する
スペルミスを修正する
歴史を改ざんする
masterブランチにマージする
4.4 リモートリポジトリへの送信
git remote add──リモートリポジトリを登録
git push──リモートリポジトリへ送信
masterブランチへ送信する
masterブランチ以外のブランチへ送信する
4.5 リモートリポジトリから取得
git clone──リモートリポジトリを取得
リモートリポジトリを取得する
リモートのfeature-Dブランチをチェックアウトする
ローカルのfeature-Dブランチに変更をコミットする
feature-Dブランチをpushする
git pull──最新のリモートリポジトリブランチを取得
4.6 さらにGitを奥深く理解するための資料
Pro Git
LearnGitBranching
tryGit
4.7 まとめ
第5章:GitHubの機能を徹底解説
5.1 キーボードショートカット
5.2 ツールバー
UIの解説
5.3 ダッシュボード
UIの解説
(1)News Feed
(2)Pull Requests
(3)Issues
(4)Stars
(5)broadcast
(6)Repositories you contribute to
(7)Your Repositories
5.4 プロフィール
UIの解説
3Repositories contributed to 5.5 リポジトリ
UIの解説
(1)ユーザ名(組織名)/リポジトリ名
(2)Watch / Star / Fork
(3)Code
(4)Issues
(5)Pull Requests
(6)Wiki
(7)Pulse
(8)Graphs
(9)Network
(10)Settings
(11)SSH clone URL
(12)Clone in Desktop
(13)Download ZIP
(a)commits
(b)branches
(c)releases
(d)contributors
(e)Compare & review
(f)branch
(g)path
(h)Fork this project and Create a new file
(i)files
ファイルに関する操作
差分の閲覧
ブランチ間の差分を見る
数日前の差分を見る
指定日からの差分を見る
5.6 Issue
表現力豊かで簡潔な記述方法
シンタックスハイライトする
画像を添付する
ラベルを付けて整理
マイルストーンを付けて管理
タスクリスト記法
コミットメッセージによるIssueの操作
関連するIssueにコミットを表示する
IssueをCloseする
特定のIssueをPull Requestに変換
5.7 Pull Request
Conversation
Commits
Files Changed
5.8 Wiki
Pages
History
5.9 Pulse
active pull requests
active issues
commits
Releases published
Unresolved Conversations
5.10 Graphs
Contributors
Commit Activity
Code Frequency
Punchcard
5.11 Network
5.12 Settings
Options
(1)Settings
(2)Features
(3)GitHub Pages
(4)Danger Zone
Collaborators
Webhooks & Services
Deploy Keys
5.13 Notifications
5.14 その他の機能
GitHub Pages
GitHub Jobs
GitHub Enterprise
GitHub API
5.15 まとめ
columnMacの通知センターでGitHubのNotificationsを確認 第6章:はじめてのPull Request
6.1 Pull Requestの概要
Pull Requestとは
Pull Requestの流れ
6.2 Pull Requestを送る準備
修正するソースコードを確認
Fork
clone
branch
トピックブランチで作業する理由
ブランチを確認する
トピックブランチを作成する
コードを追加
変更をコミット
リモートブランチの作成
6.3 Pull Requestを送る
6.4 Pull Requestをより効果的に使う方法
開発の途中でも論議するためにPull Requestを送る
開発途中であることを明確にする
ForkせずにブランチからPull Requestを送る
6.5 リポジトリのメンテナンス
リポジトリのFork,clone
オリジナルのリポジトリに名前を設定
最新のデータを取得
6.6 まとめ
第7章:Pull Requestが送られてきたら
7.1 Pull Requestを取り込む方法
7.2 Pull Requestを取り込む準備
コードレビュー
画像の差分を確認
2-up
Swipe
Onion Skin
Difference
Pull Requestの内容を手元の開発環境に反映
受信側のローカルリポジトリを最新にする
送信側のリモートリポジトリを取得する
確認用のブランチを作成する
マージする
ブランチを削除する
7.3 Pull Requestを取り込む
メインのブランチにマージ
変更をpush
7.4 まとめ
第8章:GitHubと連携するツールとサービス
8.1 hubコマンド
概要
セットアップ
インストールする
動作確認する
エイリアスを設定する
シェルでの補完を実現する
~/.config/hubについて
コマンド
hub clone
hub remote add
hub fetch
hub cherry-pick
hub fork
hub pull-request
hub checkout
hub create
hub push
hub browse
hub compare
columnhubコマンドをGitHub Enterpriseに対応する 8.2 Travis CI
概要
使ってみる
設定ファイルを書く
設定ファイルに問題がないかチェックする
GitHubと連携する
Travis CIの結果をREADMEに追加する
8.3 Coveralls
概要
セットアップ
サインアップする
対象リポジトリを追加する
設定ファイルを記述する
gemを追加する
レポートを確認する
8.4 Gemnasium
8.5 Code Climate
8.6 Jenkins
概要
インストール
botアカウントを作成
botアカウントの権限設定
個人アカウントの場合
Organizationアカウントの場合
設定を確認する
JenkinsへのSSH鍵の設定
Jenkinsをはじめて利用する場合
すでにJenkinsを利用している場合
GitHub pull request builder pluginのインストール
Git pluginの設定
Github pull requests builderの設定
Github server api URL
Access Token
Admin list
ジョブの作成と設定
GitHub project
ソースコード管理
ビルド・トリガ
ビルド
結果の通知
テストを実行中のステータス
Failed
All is well
commit status
コメントによるコントロール
ジョブを実行する
「White list」に登録する
もう一度ジョブを実行する
コメントする文字を変更する
8.7 まとめ
columnCoderwallでGitHubのプロフィールを作成 第9章:GitHubを利用した開発フロー
9.1 チームでGitHubを利用するうえで意識すべきこと
すべてをシンプルに
プロジェクト管理ツールとGitHubの違い
プロジェクト管理ツールとGitHubが異なる理由
リポジトリをForkしない方法
9.2 GitHub Flow──デプロイを中心にした開発スタイル
9.3 GitHub Flowの流れ
常にデプロイ。リリースという概念はない
新作業はmasterブランチから新ブランチを作成
作成した新ブランチにコミットする
定期的にpushする
Pull Requestを使う
必ずほかの開発者からレビューを受ける
マージ後はすぐにデプロイ
9.4 GitHub Flowを実践するための前提条件
デプロイ作業は完全自動化する
デプロイツールを利用する
Web上でデプロイを実行するツール
開発に取り入れる際の注意
テストを重要視する
テストを自動化する
テストを書き,すべてのテストを通過する
テストコードをメンテナンスする
9.5 GitHub Flowを疑似体験
Fizzbuzzの仕様
新機能を追加
新しいブランチを作成
新たにcloneする場合
以前にcloneしたことがある場合
トピックブランチを作成する
新機能を実装
Pull Requestを作成
フィードバックを受ける
インデントを修正
テストを追加
Pull Requestを育てる
Pull Requestがマージされる
9.6 GitHub Flowをチームで実践するために
Pull Requestのサイズを小さくする
試せる環境を用意する
Pull Requestへのフィードバックを多くしすぎない
Pull Requestをためないようにする
9.7 GitHub Flowのまとめ
9.8 Git Flow──リリース中心の開発スタイル
理解しやすい標準的な流れ
複雑すぎる場合がある
9.9 Git Flowを導入するための準備
git-flowのインストール
Macの場合
Linuxなどの場合
動作確認
リポジトリの初期設定
リポジトリを作成する
git flowの初期設定を行う
リモートリポジトリにもdevelopブランチを作成する
9.10 Git Flowを疑似体験
masterブランチとdevelopブランチの違い
masterブランチ
developブランチ
featureブランチで行うこと
ブランチを作成する
ブランチでの作業を行う
Pull Requestの送信
コードレビューでコードの品質を向上
ローカルのdevelopブランチを更新
releaseブランチで行うこと
ブランチを作成する
ブランチでの作業を行う
リリースとマージを行う
バージョンのタグを確認する
リモートリポジトリへの反映
hotfixブランチで行うこと
ブランチを作成する
タグの作成とリリースを行う
hotfixブランチからdevelopブランチへマージする
9.11 Git Flowのまとめ
第10章:会社でGitHubを使おう
10.1 世界標準の開発環境を企業の現場にも
会社に導入するメリット
Organizationを利用
GitHubのセキュリティを確認
メンテナンス時間に注意
障害情報の確認
10.2 GitHub Enterpriseの検討
概要
導入のメリット
導入のデメリット
導入を検討すると良いケース
社外にソースコードを置けない
columnGitHubのリポジトリをSubversionのリポジトリとして利用する メンテナンス・障害時刻をコントロールしたい
10.3 Gitホスティングを実現するソフトウェア
10.4 まとめ
Appendix A:GitHubをサポートするGUIクライアント
A.1 GitHub for Mac,GitHub for Windows
A.2 SourceTree
Appendix B:Gistで手軽にコードを共有
B.1 Gistの特徴
B.2 Gistを作成
UIの解説
B.3 Gistを閲覧
Gistのメニュー
(1)Gist Detaill
(2)Revisions
(3)Download Gist
(4)Clone this gist
(5)Embed this gist
(6)Link to this gist
ファイルのメニュー
B.4 Your Gists
B.5 まとめ