第1章 歡迎來到GitHub的世界 1
1.1 什麼是GitHub 2
GitHub公司與octocat 2
並不隻是Git倉庫的托管服務 3
GitHub的使用情況 3
Column 專欄:GitHub與Git的區彆 4
1.2 使用GitHub會帶來哪些變化 4
協作形式變化 4
在開發者之間引發化學反應的Pull Request 5
對特定用戶進行評論 6
GitHub Flavored Markdown 7
Column 專欄:還可以這樣寫!! 7
能看到更多其他團隊的軟件 7
與開源軟件相同的開發模式 8
1.3 社會化編程 9
1.4 為什麼需要社會化編程 10
不要閉目塞聽,要接觸不同的文化 10
會寫代碼的程序員更受青睞 11
GitHub最大的特徵是“麵嚮人” 11
1.5 GitHub提供的主要功能 12
Git倉庫 12
Organization 12
Issue 13
Wiki 13
Pull Request 13
Column 專欄:GitHub上受到矚目的軟件 14
1.6 小結 14
參考資料 14
第2章 Git的導入 17
2.1 誕生背景 18
2.2 什麼是版本管理 18
集中型與分散型 19
集中型 19
分散型 19
集中型與分散型哪個更好 20
2.3 安裝 21
Mac與Linux 21
Windows 21
組件的選擇 22
設置環境變量 22
換行符的處理 23
Git Bash 23
本書所用的環境 24
2.4 初始設置 24
設置姓名和郵箱地址 24
提高命令輸齣的可讀性 25
2.5 小結 25
第3章 使用GitHub的前期準備 27
3.1 使用前的準備 28
創建賬戶 28
設置頭像 29
設置SSH Key 29
添加公開密鑰 30
使用社區功能 31
3.2 實際動手使用 31
創建倉庫 31
Repository name 32
Description 32
Public、Private 32
Initialize this repository with a README 32
Add .gitignore 33
Add a license 33
連接倉庫 33
README.md 33
GitHub Flavored Markdown 34
公開代碼 34
clone已有倉庫 34
編寫代碼 35
提交 36
Column 專欄:公開時的許可協議 37
進行push 37
3.3 小結 38
第4章 通過實際操作學習Git 39
4.1 基本操作 40
git init——初始化倉庫 40
git status——查看倉庫的狀態 40
git add——嚮暫存區中添加文件 41
git commit——保存倉庫的曆史記錄 42
記述一行提交信息 42
記述詳細提交信息 42
中止提交 43
查看提交後的狀態 43
git log——查看提交日誌 43
隻顯示提交信息的第一行 44
隻顯示指定目錄、文件的日誌 44
顯示文件的改動 45
git diff——查看更改前後的差彆 45
查看工作樹和暫存區的差彆 45
查看工作樹和最新提交的差彆 46
4.2 分支的操作 47
git branch——顯示分支一覽錶 48
git checkout -b——創建、切換分支 48
切換到feature-A分支並進行提交 48
切換到master分支 49
切換迴上一個分支 50
特性分支 50
主乾分支 51
git merge——閤並分支 51
git log --graph——以圖錶形式查看分支 52
4.3 更改提交的操作 53
git reset——迴溯曆史版本 53
迴溯到創建feature-A分支前 53
創建fix-B分支 54
推進至feature-A分支閤並後的狀態 55
消除衝突 56
查看衝突部分並將其解決 57
提交解決後的結果 57
git commit --amend——修改提交信息 58
git rebase -i——壓縮曆史 59
創建feature-C分支 59
修正拼寫錯誤 60
更改曆史 61
閤並至master分支 63
4.4 推送至遠程倉庫 63
git remote add——添加遠程倉庫 64
git push——推送至遠程倉庫 64
推送至master分支 64
推送至master以外的分支 65
4.5 從遠程倉庫獲取 65
git clone——獲取遠程倉庫 65
獲取遠程倉庫 65
獲取遠程的feature-D分支 66
嚮本地的feature-D分支提交更改 67
推送feature-D分支 67
git pull——獲取最新的遠程倉庫分支 67
4.6 幫助大傢深入理解Git的資料 68
Pro Git 68
LearnGitBranching 69
tryGit 69
4.7 小結 70
第5章 詳細解說GitHub的功能 71
5.1 鍵盤快捷鍵 72
5.2 工具欄 73
關於UI 73
1LOGO 73
2Notifications 73
3 搜索窗口 73
4Explore 73
5Gist 74
6Blog 74
7Help 74
8 頭像、用戶名 74
9 Create a new 74
Account settings 75
Sign out 75
5.3 控製麵闆 75
關於UI 75
①News Feed 76
②Pull Requests 76
③Issues 76
④Stars 76
⑤Broadcast 76
⑥Repositories you contribute to 76
⑦Your Repositories 76
5.4 個人信息 77
關於UI 77
1 用戶信息 77
2Popular Repositories 78
3Repositories contributed to 78
4Public contributions 78
5Contribution Activity 78
6Repositories 78
7Public Activity 79
5.5 倉庫 80
關於UI 80
①用戶名(組織名)/倉庫名 80
②Watch/Star/Fork 80
③Code 81
④Issue 81
⑤Pull Requests 81
⑥Wiki 82
⑦Pulse 82
⑧Graphs 82
⑨Network 82
⑩Settings 82
⑪SSH clone URL 82
⑫Clone in Desktop 82
⑬Download ZIP 83
acommits 83
bbranches 83
creleases 83
dcontributors 83
eCompare & review 83
fbranch 83
gpath 84
hFork this project and Create a new file 84
ifiles 84
文件的相關操作 84
Column專欄:通過部分名稱搜索文件 85
查看差彆 85
查看分支間的差彆 85
查看與幾天前的差彆 86
查看與指定日期之間的差彆 87
5.6 Issue 87
簡潔且錶現力豐富的描述方法 88
語法高亮 89
添加圖片 90
添加標簽以便整理 90
添加裏程碑以便管理 91
Column 專欄:瞭解貢獻時的規則! 92
Tasklist語法 92
通過提交信息操作Issue 93
在相關Issue中顯示提交 93
Close Issue 93
將特定的Issue轉換為Pull Request 94
5.7 Pull Request 94
Column 專欄:獲取diff格式與patch格式的文件 96
Conversation 96
Column 專欄:引用評論 96
Commits 97
Column 專欄:在評論中應用錶情 98
Files Changed 98
5.8 Wiki 99
Pages 100
History 101
Column 專欄:在Wiki中顯示側邊欄 101
5.9 Pulse 102
active pull requests 103
active issue 103
commits 104
Releases published 104
Unresolved Conversations 104
5.10 Graphs 105
Contributors 105
Commit Activity 106
Code Frequency 106
Punchcard 108
5.11 Network 108
5.12 Settings 109
Options 109
①Settings 109
②Features 110
③GitHub Pages 111
④Danger Zone 111
Collaborators 111
Webhooks & Services 112
Deploy Keys 112
5.13 Notifications 112
5.14 其他功能 114
GitHub Pages 114
GitHub Jobs 114
GitHub Enterprise 114
GitHub API 115
5.15 小結 115
Column 專欄:在Mac的通知中心查看GitHub的Notifications 115
第6章 嘗試Pull Request 117
6.1 Pull Request的概要 118
什麼是Pull Request 118
Pull Request的流程 118
6.2 發送Pull Request前的準備 119
查看要修正的源代碼 120
Fork 120
clone 120
branch 121
為何要在特性分支中進行作業 121
確認分支 121
創建特性分支 121
添加代碼 122
提交修改 122
創建遠程分支 123
6.3 發送Pull Request 123
6.4 讓Pull Request更加有效的方法 126
在開發過程中發送Pull Request進行討論 126
明確標齣“正在開發過程中” 127
不進行Fork直接從分支發送Pull Request 128
6.5 倉庫的維護 128
倉庫的Fork與clone 129
給原倉庫設置名稱 129
獲取最新數據 130
6.6 小結 130
第7章 接收Pull Request 131
7.1 采納Pull Request的方法 132
7.2 采納Pull Request前的準備 133
代碼審查 133
查看圖片的差彆 134
2-up 134
Swipe 135
Onion Skin 135
Difference 136
在本地開發環境中反映Pull Request的內容 136
將接收方的本地倉庫更新至最新狀態 136
獲取發送方的遠程倉庫 137
創建用於檢查的分支 138
閤並 138
刪除分支 139
Column 專欄:如何提升代碼管理技術 139
7.3 采納Pull Request 139
閤並到主分支 140
push修改內容 141
7.4 小結 142
Column 專欄:請協助我們共同創建互相學習的場所 142
第8章 與GitHub相互協作的工具及服務 143
8.1 hub命令 144
概要 144
安裝 144
安裝 145
確認運行情況 145
設置彆名 145
實現shell上的功能補全 146
~/.config/hub 146
命令 146
hub clone 146
hub remote add 147
hub fetch 147
hub cherry-pick 147
hub fork 148
hub pull-request 148
hub checkout 148
hub create 149
hub push 149
hub browse 150
hub compare 150
Column 專欄:讓GitHub Enterprise支持hub命令 151
8.2 Travis CI 151
概要 151
實際嘗試 152
編寫配置文件 152
檢測配置文件是否有問題 152
與GitHub集成 153
將Travis CI的結果添加至README.md 155
8.3 Coveralls 156
概要 156
安裝 157
注冊 157
添加對象倉庫 158
編寫配置文件 158
添加gem 159
查看報告 160
8.4 Gemnasium 160
8.5 Code Climate 161
8.6 Jenkins 162
概要 162
安裝 164
創建bot賬戶 165
bot賬戶的權限設置 165
對象為個人賬戶時 165
對象為Organization賬戶時 165
檢查設置 167
給Jenkins設置SSH密鑰 167
初次使用Jenkins時 167
已經在使用Jenkins時 168
GitHub pull request builder plugin的安裝 169
Git plugin的設置 170
Github Pull Requests Builder的設置 170
Github server api URL 171
Access Token 171
Admin list 172
job的創建與設置 172
GitHub project 172
源碼管理 172
構建觸發器 173
構建 174
通知結果 174
測試執行中的狀態 175
Failed 175
All is well 175
commit status 175
通過評論進行控製 176
執行任務 176
添加至White list 176
重新執行任務 176
變更指定評論 177
8.7 小結 177
Column 專欄:用Coderwall生成GitHub上的個人信息 178
第9章 使用GitHub的開發流程 179
9.1 團隊使用GitHub時的注意事項 180
一切從簡 180
項目管理工具與GitHub的區彆 180
項目管理工具與GitHub相異的原因 181
不Fork倉庫的方法 182
9.2 GitHub Flow——以部署為中心的開發模式 183
9.3 GitHub Flow的流程 184
隨時部署,沒有發布的概念 184
進行新的作業時要從master分支創建新分支 185
在新創建的分支中進行提交 186
定期push 186
使用Pull Request 187
務必讓其他開發者進行審查 187
閤並後立刻部署 187
9.4 實踐GitHub Flow的前提條件 188
部署作業完全自動化 188
使用部署工具 189
通過Web界麵進行部署的工具 189
導入開發時的注意事項 190
重視測試 190
讓測試自動化 190
編寫測試代碼,通過全部測試 190
維護測試代碼 190
9.5 模擬體驗GitHub Flow 191
Fizzbuzz的說明 191
添加新功能 192
創建新的分支 192
如果尚未clone倉庫 192
如果之前clone過倉庫 193
創建特性分支 193
實現新功能 194
創建Pull Request 196
接收反饋 196
修正縮進 197
添加測試 199
培育Pull Request 202
Pull Request被閤並 202
9.6 團隊實踐GitHub Flow時的幾點建議 203
減小Pull Request的體積 204
準備可供試運行的環境 204
不要讓Pull Request中有太多反饋 205
不要積攢Pull Request 206
9.7 GitHub Flow的小結 206
9.8 Git Flow——以發布為中心的開發模式 207
便於理解的標準流程 207
有時顯得過於復雜 209
9.9 導入Git Flow前的準備 209
安裝git-flow 209
Mac下的安裝 209
Linux下的安裝 210
確認運行狀況 210
倉庫的初始設置 210
創建倉庫 210
進行git flow的初始設置 211
在遠程倉庫中也創建develop分支 212
9.10 模擬體驗Git Flow 212
master分支與develop分支的區彆 213
master分支 213
develop分支 213
在feature中進行的工作 213
創建分支 214
在分支中進行作業 215
發送Pull Request 216
通過代碼審查提高代碼質量 217
更新本地的develop分支 219
在release分支中進行的工作 220
Column 專欄:設置默認分支 220
創建分支 221
分支內的工作 222
進行發布與閤並 222
查看版本標簽 224
更新到遠程倉庫 225
在hotfix分支中進行的工作 226
創建分支 226
創建標簽和進行發布 228
從hotfix分支閤並至develop分支 230
9.11 Git Flow的小結 232
Column 專欄:版本號的分配規則 232
第10章 將GitHub應用到企業 233
10.1 將世界標準的開發環境引入企業現場 234
企業引入GitHub的好處 234
使用Organization 235
確認Github的安全性 235
注意維護時間 235
查看故障信息 236
10.2 GitHub Enterprise 237
概述 238
引入的好處 238
引入的弊端 239
適閤引入GitHub Enterprise的幾種情況 239
源代碼不可外傳 239
Column 專欄:將GitHub的倉庫作為Subversion倉庫使用 240
希望維護與故障時間可控 240
10.3 能實現Git托管的軟件 241
Column 專欄:Bitbucket 241
10.4 小結 242
附錄A 支持GitHub的GUI客戶端 243
A.1 GitHub for Mac,GitHub for Windows 244
A.2 SourceTree 246
附錄B 通過Gist輕鬆實現代碼共享 247
B.1 Gist的特點 248
B.2 創建Gist 248
UI講解 249
1 Gist description 249
2 name this file 249
3 language 250
4 ACE Editor 250
5 文件 250
6 Add another File 251
7 Create Secret Gist 251
8 Create Public Gist 251
B.3 查看Gist 252
Gist 的菜單 252
①Gist Detail 253
②Revisions 253
③Download Gist 253
④Clone this gist 253
⑤Embed this gist 253
⑥Link to this gist 253
文件的菜單 254
B.4 Your Gists 254
B.5 小結 255
· · · · · · (
收起)