作品介紹

GitHub入門與實踐


作者:[日]大塚弘記     整理日期:2017-02-28 11:57:07


  本書從Git的基本知識和操作方法入手,詳細(xì)介紹了GitHub的各種功能,GitHub與其他工具或服務(wù)的協(xié)作,使用GitHub的開發(fā)流程以及如何將GitHub引入到企業(yè)中。在講解GitHub的代表功能Pull Request時,本書專門搭建了供各位讀者實踐的倉庫,邀請各位讀者進(jìn)行Pull Request并共同維護(hù)。

作者簡介
  大塚弘記
  將敏捷軟件開發(fā)導(dǎo)入開發(fā)現(xiàn)場的領(lǐng)軍人物,以顧問身份就Web應(yīng)用的開發(fā)及服務(wù)指導(dǎo)過多家企業(yè)和團(tuán)隊。曾為多家企業(yè)和團(tuán)隊導(dǎo)入GitHub,在建立一天之內(nèi)多次部署的開發(fā)體制方面擁有豐富經(jīng)驗。

目錄:
  第1章 歡迎來到GitHub的世界  1
  1.1 什么是GitHub  2
  GitHub公司與octocat  2
  并不只是Git倉庫的托管服務(wù)  3
  GitHub的使用情況  3
  Column 專欄:GitHub與Git的區(qū)別  4
  1.2 使用GitHub會帶來哪些變化  4
  協(xié)作形式變化  4
  在開發(fā)者之間引發(fā)化學(xué)反應(yīng)的Pull Request  5
  對特定用戶進(jìn)行評論  6
  GitHub Flavored Markdown  7
  Column 專欄:還可以這樣寫!!  7
  能看到更多其他團(tuán)隊的軟件  7
  與開源軟件相同的開發(fā)模式  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 小結(jié)  14
  參考資料  14
  第2章 Git的導(dǎo)入  17
  2.1 誕生背景  18
  2.2 什么是版本管理  18
  集中型與分散型  19
  集中型  19
  分散型  19
  集中型與分散型哪個更好  20
  2.3 安裝  21
  Mac與Linux  21
  Windows  21
  組件的選擇  22
  設(shè)置環(huán)境變量  22
  換行符的處理  23
  Git Bash  23
  本書所用的環(huán)境  24
  2.4 初始設(shè)置  24
  設(shè)置姓名和郵箱地址  24
  提高命令輸出的可讀性  25
  2.5 小結(jié)  25
  第3章 使用GitHub的前期準(zhǔn)備  27
  3.1 使用前的準(zhǔn)備  28
  創(chuàng)建賬戶  28
  設(shè)置頭像  29
  設(shè)置SSH Key  29
  添加公開密鑰  30
  使用社區(qū)功能  31
  3.2 實際動手使用  31
  創(chuàng)建倉庫  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 專欄:公開時的許可協(xié)議  37
  進(jìn)行push  37
  3.3 小結(jié)  38
  第4章 通過實際操作學(xué)習(xí)Git  39
  4.1 基本操作  40
  git init——初始化倉庫  40
  git status——查看倉庫的狀態(tài)  40
  git add——向暫存區(qū)中添加文件  41
  git commit——保存?zhèn)}庫的歷史記錄  42
  記述一行提交信息  42
  記述詳細(xì)提交信息  42
  中止提交  43
  查看提交后的狀態(tài)  43
  git log——查看提交日志  43
  只顯示提交信息的第一行  44
  只顯示指定目錄、文件的日志  44
  顯示文件的改動  45
  git diff——查看更改前后的差別  45
  查看工作樹和暫存區(qū)的差別  45
  查看工作樹和最新提交的差別  46
  4.2 分支的操作  47
  git branch——顯示分支一覽表  48
  git checkout -b——創(chuàng)建、切換分支  48
  切換到feature-A分支并進(jìn)行提交  48
  切換到master分支  49
  切換回上一個分支  50
  特性分支  50
  主干分支  51
  git merge——合并分支  51
  git log --graph——以圖表形式查看分支  52
  4.3 更改提交的操作  53
  git reset——回溯歷史版本  53
  回溯到創(chuàng)建feature-A分支前  53
  創(chuàng)建fix-B分支  54
  推進(jìn)至feature-A分支合并后的狀態(tài)  55
  消除沖突  56
  查看沖突部分并將其解決  57
  提交解決后的結(jié)果  57
  git commit --amend——修改提交信息  58
  git rebase -i——壓縮歷史  59
  創(chuàng)建feature-C分支  59
  修正拼寫錯誤  60
  更改歷史  61
  合并至master分支  63
  4.4 推送至遠(yuǎn)程倉庫  63
  git remote add——添加遠(yuǎn)程倉庫  64
  git push——推送至遠(yuǎn)程倉庫  64
  推送至master分支  64
  推送至master以外的分支  65
  4.5 從遠(yuǎn)程倉庫獲取  65
  git clone——獲取遠(yuǎn)程倉庫  65
  獲取遠(yuǎn)程倉庫  65
  獲取遠(yuǎn)程的feature-D分支  66
  向本地的feature-D分支提交更改  67
  推送feature-D分支  67
  git pull——獲取最新的遠(yuǎn)程倉庫分支  67
  4.6 幫助大家深入理解Git的資料  68
  Pro Git  68
  LearnGitBranching  69
  tryGit  69
  4.7 小結(jié)  70
  第5章 詳細(xì)解說GitHub的功能  71
  5.1 鍵盤快捷鍵  72
  5.2 工具欄  73
  關(guān)于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
  關(guān)于UI  75
 、貼ews Feed  76
 、赑ull Requests  76
 、跧ssues  76
  ④Stars  76
 、軧roadcast  76
  ⑥Repositories you contribute to  76
 、遈our Repositories  76
  5.4 個人信息  77
  關(guān)于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
  關(guān)于UI  80
 、儆脩裘ńM織名)/倉庫名  80
 、赪atch/Star/Fork  80
 、跜ode  81
 、躀ssue  81
  ⑤Pull Requests  81
 、轜iki  82
 、逷ulse  82
  ⑧Graphs  82
 、酦etwork  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
  文件的相關(guān)操作  84
  Column專欄:通過部分名稱搜索文件  85
  查看差別  85
  查看分支間的差別  85
  查看與幾天前的差別  86
  查看與指定日期之間的差別  87
  5.6 Issue  87
  簡潔且表現(xiàn)力豐富的描述方法  88
  語法高亮  89
  添加圖片  90
  添加標(biāo)簽以便整理  90
  添加里程碑以便管理  91
  Column 專欄:了解貢獻(xiàn)時的規(guī)則!  92
  Tasklist語法  92
  通過提交信息操作Issue  93
  在相關(guān)Issue中顯示提交  93
  Close Issue  93
  將特定的Issue轉(zhuǎn)換為Pull Request  94
  5.7 Pull Request  94
  Column 專欄:獲取diff格式與patch格式的文件  96
  Conversation  96
  Column 專欄:引用評論  96
  Commits  97
  Column 專欄:在評論中應(yīng)用表情  98
  Files Changed  98
  5.8 Wiki  99
  Pages  100
  History  101
  Column 專欄:在Wiki中顯示側(cè)邊欄  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
 、贔eatures  110
 、跥itHub Pages  111
 、蹹anger 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 小結(jié)  115
  Column 專欄:在Mac的通知中心查看GitHub的Notifications  115
  第6章 嘗試Pull Request  117
  6.1 Pull Request的概要  118
  什么是Pull Request  118
  Pull Request的流程  118
  6.2 發(fā)送Pull Request前的準(zhǔn)備  119
  查看要修正的源代碼  120
  Fork  120
  clone  120
  branch  121
  為何要在特性分支中進(jìn)行作業(yè)  121
  確認(rèn)分支  121
  創(chuàng)建特性分支  121
  添加代碼  122
  提交修改  122
  創(chuàng)建遠(yuǎn)程分支  123
  6.3 發(fā)送Pull Request  123
  6.4 讓Pull Request更加有效的方法  126
  在開發(fā)過程中發(fā)送Pull Request進(jìn)行討論  126
  明確標(biāo)出“正在開發(fā)過程中”  127
  不進(jìn)行Fork直接從分支發(fā)送Pull Request  128
  6.5 倉庫的維護(hù)  128
  倉庫的Fork與clone  129
  給原倉庫設(shè)置名稱  129
  獲取最新數(shù)據(jù)  130
  6.6 小結(jié)  130
  第7章 接收Pull Request  131
  7.1 采納Pull Request的方法  132
  7.2 采納Pull Request前的準(zhǔn)備  133
  代碼審查  133
  查看圖片的差別  134
  2-up  134
  Swipe  135
  Onion Skin  135
  Difference  136
  在本地開發(fā)環(huán)境中反映Pull Request的內(nèi)容  136
  將接收方的本地倉庫更新至最新狀態(tài)  136
  獲取發(fā)送方的遠(yuǎn)程倉庫  137
  創(chuàng)建用于檢查的分支  138
  合并  138
  刪除分支  139
  Column 專欄:如何提升代碼管理技術(shù)  139
  7.3 采納Pull Request  139
  合并到主分支  140
  push修改內(nèi)容  141
  7.4 小結(jié)  142
  Column 專欄:請協(xié)助我們共同創(chuàng)建互相學(xué)習(xí)的場所  142
  第8章 與GitHub相互協(xié)作的工具及服務(wù)  143
  8.1 hub命令  144
  概要  144
  安裝  144
  安裝  145
  確認(rèn)運行情況  145
  設(shè)置別名  145
  實現(xiàn)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的結(jié)果添加至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
  創(chuàng)建bot賬戶  165
  bot賬戶的權(quán)限設(shè)置  165
  對象為個人賬戶時  165
  對象為Organization賬戶時  165
  檢查設(shè)置  167
  給Jenkins設(shè)置SSH密鑰  167
  初次使用Jenkins時  167
  已經(jīng)在使用Jenkins時  168
  GitHub pull request builder plugin的安裝  169
  Git plugin的設(shè)置  170
  Github Pull Requests Builder的設(shè)置  170
  Github server api URL  171
  Access Token  171
  Admin list  172
  job的創(chuàng)建與設(shè)置  172
  GitHub project  172
  源碼管理  172
  構(gòu)建觸發(fā)器  173
  構(gòu)建  174
  通知結(jié)果  174
  測試執(zhí)行中的狀態(tài)  175
  Failed  175
  All is well  175
  commit status  175
  通過評論進(jìn)行控制  176
  執(zhí)行任務(wù)  176
  添加至White list  176
  重新執(zhí)行任務(wù)  176
  變更指定評論  177
  8.7 小結(jié)  177
  Column 專欄:用Coderwall生成GitHub上的個人信息  178
  第9章 使用GitHub的開發(fā)流程  179
  9.1 團(tuán)隊使用GitHub時的注意事項  180
  一切從簡  180
  項目管理工具與GitHub的區(qū)別  180
  項目管理工具與GitHub相異的原因  181
  不Fork倉庫的方法  182
  9.2 GitHub Flow——以部署為中心的開發(fā)模式  183
  9.3 GitHub Flow的流程  184
  隨時部署,沒有發(fā)布的概念  184
  進(jìn)行新的作業(yè)時要從master分支創(chuàng)建新分支  185
  在新創(chuàng)建的分支中進(jìn)行提交  186
  定期push  186
  使用Pull Request  187
  務(wù)必讓其他開發(fā)者進(jìn)行審查  187
  合并后立刻部署  187
  9.4 實踐GitHub Flow的前提條件  188
  部署作業(yè)完全自動化  188
  使用部署工具  189
  通過Web界面進(jìn)行部署的工具  189
  導(dǎo)入開發(fā)時的注意事項  190
  重視測試  190
  讓測試自動化  190
  編寫測試代碼,通過全部測試  190
  維護(hù)測試代碼  190
  9.5 模擬體驗GitHub Flow  191
  Fizzbuzz的說明  191
  添加新功能  192
  創(chuàng)建新的分支  192
  如果尚未clone倉庫  192
  如果之前clone過倉庫  193
  創(chuàng)建特性分支  193
  實現(xiàn)新功能  194
  創(chuàng)建Pull Request  196
  接收反饋  196
  修正縮進(jìn)  197
  添加測試  199
  培育Pull Request  202
  Pull Request被合并  202
  9.6 團(tuán)隊實踐GitHub Flow時的幾點建議  203
  減小Pull Request的體積  204
  準(zhǔn)備可供試運行的環(huán)境  204
  不要讓Pull Request中有太多反饋  205
  不要積攢Pull Request  206
  9.7 GitHub Flow的小結(jié)  206
  9.8 Git Flow——以發(fā)布為中心的開發(fā)模式  207
  便于理解的標(biāo)準(zhǔn)流程  207
  有時顯得過于復(fù)雜  209
  9.9 導(dǎo)入Git Flow前的準(zhǔn)備  209
  安裝git-flow  209
  Mac下的安裝  209
  Linux下的安裝  210
  確認(rèn)運行狀況  210
  倉庫的初始設(shè)置  210
  創(chuàng)建倉庫  210
  進(jìn)行g(shù)it flow的初始設(shè)置  211
  在遠(yuǎn)程倉庫中也創(chuàng)建develop分支  212
  9.10 模擬體驗Git Flow  212
  master分支與develop分支的區(qū)別  213
  master分支  213
  develop分支  213
  在feature中進(jìn)行的工作  213
  創(chuàng)建分支  214
  在分支中進(jìn)行作業(yè)  215
  發(fā)送Pull Request  216
  通過代碼審查提高代碼質(zhì)量  217
  更新本地的develop分支  219
  在release分支中進(jìn)行的工作  220
  Column 專欄:設(shè)置默認(rèn)分支  220
  創(chuàng)建分支  221
  分支內(nèi)的工作  222
  進(jìn)行發(fā)布與合并  222
  查看版本標(biāo)簽  224
  更新到遠(yuǎn)程倉庫  225
  在hotfix分支中進(jìn)行的工作  226
  創(chuàng)建分支  226
  創(chuàng)建標(biāo)簽和進(jìn)行發(fā)布  228
  從hotfix分支合并至develop分支  230
  9.11 Git Flow的小結(jié)  232
  Column 專欄:版本號的分配規(guī)則  232
  第10章 將GitHub應(yīng)用到企業(yè)  233
  10.1 將世界標(biāo)準(zhǔn)的開發(fā)環(huán)境引入企業(yè)現(xiàn)場  234
  企業(yè)引入GitHub的好處  234
  使用Organization  235
  確認(rèn)Github的安全性  235
  注意維護(hù)時間  235
  查看故障信息  236
  10.2 GitHub Enterprise  237
  概述  238
  引入的好處  238
  引入的弊端  239
  適合引入GitHub Enterprise的幾種情況  239
  源代碼不可外傳  239
  Column 專欄:將GitHub的倉庫作為Subversion倉庫使用  240
  希望維護(hù)與故障時間可控  240
  10.3 能實現(xiàn)Git托管的軟件  241
  Column 專欄:Bitbucket  241
  10.4 小結(jié)  242
  附錄A 支持GitHub的GUI客戶端  243
  A.1 GitHub for Mac,GitHub for Windows  244
  A.2 SourceTree  246
  附錄B 通過Gist輕松實現(xiàn)代碼共享  247
  B.1 Gist的特點  248
  B.2 創(chuàng)建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
 、貵ist Detail  253
 、赗evisions  253
  ③Download Gist  253
 、蹸lone this gist  253
  ⑤Embed this gist  253
 、轑ink to this gist   253
  文件的菜單   254
  B.4 Your Gists   254
  B.5 小結(jié)  255





上一本:魔杯 下一本:平臺戰(zhàn)略

作家文集

下載說明
GitHub入門與實踐的作者是[日]大塚弘記,全書語言優(yōu)美,行文流暢,內(nèi)容豐富生動引人入勝。為表示對作者的支持,建議在閱讀電子書的同時,購買紙質(zhì)書。

更多好書