编辑推荐
针对项目开发人员:以有效率的方式,引导你在实践中完整地学习Git的操作技巧和应用。
针对项目管理者:在实例中学习如何查看项目开发的各种统计图,以便随时掌握项目开发的状况。
针对MIS人员:提供建立GitServer的多种方法,自行选用和规划适合自己实际运用的方法。
内容简介
《完全学会Git GitHub Git Server的24堂课》以教科书的方式,循序渐进地向软件开发人员或软件开发的项目管理人员,讲述如何快速掌握分布式版本控制系统Git的应用方法,让繁琐复杂的项目开发的版本控制变得高效且轻松自如。书中细致入微地介绍了如何使用设置文件和操作Git文档库,以及建立项目开发的分支、合并分支和解决冲突的操作;在具备扎实的基础之后,介绍了GitGUI程序用法,以及Git在团队开发模式中应用的问题;讲述如何与全球的项目开发人员进行交流,提升程序开发的经验和能力;介绍了GitHub、Bitbucket、GitLab等提供Git服务的网站;《完全学会Git GitHub Git Server的24堂课》最后的重点为介绍架设GitServer的几种方法,让每一个项目开发团队,可以按照自己的软硬件环境,选择适合的方式来控管项目开发。
作者简介
孙宏明,台湾成功大学信息工程研究所博士,台湾友立信息公司主任研究员,台湾开南大学资管系副教授,台北城市科技大学、台湾元培科技大学、台湾侨光科技大学等大专院校AndroidApp开发研习课程讲师。
目录
第一部分Git的基本概念和操作
第1课Git、谁与争锋2
1-1安装和使用Git3
1-2了解Git的工作方式9
第2课Git配置文件的妙用11
2-1“gitconfig”指令的用法12
2-2修改默认的文本编辑器和文件对比程序15
第3课把文件存入Git文档库20
3-1排除不需要加入文档库的文件20
3-2控制Commit25
3-3查看Commit节点27
第4课比较文件的差异和从Git文档库取回文件31
4-1从Git文档库中取出文件33
4-2使用“gitmv”指令改变文件或是文件夹的名称36
4-3暂存当前文件夹的文件状态37
4-4清理Git文档库38
第5课Git程序项目管理的实践演练40
第6课获取Git文档库统计数据和绘制统计图表45
6-1获取Git文档库的统计数据46
6-2使用GitStats绘制统计图表49
第二部分建立分支、合并和解决冲突
第7课程序项目的分支(Branch)56
7-1解决DetachedHEAD的问题63
第8课合并程序项目的分支和解决冲突67
8-1解决合并分支时发生的冲突71
8-2设置MergeTool解决合并分支时发生的冲突75
8-3使用Cherry-Pick指令运用指定的Commit节点版本77
8-4处理DetachedHEAD状态和RevertCommit节点79
第9课使用Rebase指令更新分支的起始点81
9-1Rebase指令的用法84
9-2执行Rebase之后想要反悔怎么办?86
第10课程序项目的分支和合并的实践演练88
10-1程序项目开发导入Git的策略88
10-2结合Git与程序项目开发91
第三部分Git程序的图形操作介面
第11课GitGUI程序的基本功能99
11-1GitGUI程序的基本操作101
11-2GitGUI程序和其他程序搭配使用104
第12课使用GitGUI程序创建分支和合并108
第13课SmartGit程序操作介绍114
13-1SmartGit程序的基本操作116
13-2SmartGit程序的分支、Rebase和合并120
第14课SourceTree程序操作介绍127
14-1SourceTree程序的基本操作128
14-2SourceTree程序的分支、Rebase和合并131
第15课TortoiseGit程序操作介绍138
15-1TortoiseGit程序的基本操作139
15-2TortoiseGit程序的分支、Rebase和合并145
第四部分远程Git文档库和团队开关模式
第16课“远程Git文档库”的基础操作154
16-1“远程Git文档库”的功能155
16-2创建“远程Git文档库”156
16-3从“远程Git文档库”复制出“本地Git文档库”158
16-4“本地Git文档库”和“远程Git文档库”的数据
同步159
第17课“远程Git文档库”的高级操作167
第18课GitHub让程序项目飞上云端172
18-1注册和设置GitHub173
18-2使用GitHub的“远程Git文档库”177
18-3安装和使用GitHubforWindows182
第19课Fork让Git文档库分家后再合并189
19-1Fork和RebaseGit文档库192
19-2创建PullRequest报告我们的更新195
第20课Bitbucket比GitHub更好用199
20-1注册和设置Bitbucket200
20-2使用Bitbucket的“远程Git文档库”203
20-3使用SourceTree程序操作“远程Git文档库”205
20-4执行Fork和PullRequest208
第21课GitLab完全免费再加送整个系统211
21-1自己架设GitLab网站219
第五部分架设GitServer
第22课使用Windows共享文件夹或是GitDaemon
作为GitServer225
22-1把Windows“共享文件夹”作为“远程Git
文档库”226
22-2使用GitDaemon创建GitServer227
第23课使用HTTP/HTTPS访问GitServer231
23-1使用HTTP访问GitServer232
23-2使用HTTPS访问GitServer236
第24课使用SSH认证和加密的GitServer239
24-1SSH的工作原理240
24-2安装和设置CopsshServer241
附录Git常用指令一览表249
前言/序言
在现今的信息产业中,软件扮演的角色越来越重要。如果公司想要在信息产业界中占有一席之地,拥有强大的软件研发实力是必要的条件。以现阶段软件产业的生态来说,能够熟练使用工具软件来提升软件研发的效率,是影响软件实力的关键因素之一,而Git就是能够有效提升软件研发效率的重要工具。
Git青出于蓝、更胜于蓝
Git最初是由Linuxkernel的作者Torvalds先生所开发,用来管理Linuxkernel项目的工具。它的功能是负责项目的版本控制,我们称它为“版本控制系统”(VersionControlSystemVCS)。虽然在Git之前,已经有许多VCS。但是相比之下,Git有更多的优点。因此从Git出现之后,就以“后来者居上”的态势快速普及。不仅有许多软件研发公司改用Git来管理和控制软件项目,网络上也出现了许多提供Git文档库存储服务的网站。而且绝大多数的开放源码的程序项目,也都是使用Git来进行版本控制的管理。为了顺应这样的趋势,软件开发工具现在也都支持用Git来进行版本控制。因此,只要是从事软件项目研发相关的工作,或是未来即将踏入这个领域,学会使用Git已经成为从业人员必备的技能。
Git和其他VCS有许多不一样的地方。它的优点是能够提升软件开发团队的工作效率,但是相对而言,就需要多一点时间来学习更好地使用它。初次使用Git的人通常会有似懂非懂的感觉,仿照别人的操作虽然很容易,可是究竟这样操作会得到什么结果,或是在不同的情况下该如何处理,这一切都会觉得懵懵懂懂。如果是和软件研发团队一起工作,每一次操作Git更是胆颤心惊,害怕一不小心,毁了整个团队的心血结晶,成为大家的罪人!
其实Git的核心是保护我们的文件,因此它工作的最高指导原则,就是不会遗失我们的数据,除非我们执行删除文件的指令。因此,Git的安全性是无庸置疑的,只要了解它的运行方式,熟悉各种情况下的操作方法,就能够让它发挥最大的效能。
Git的学习之道
《完全学会Git GitHub Git Server的24堂课》以循序渐进的方式,学习Git的功能和用法。书中以实际的操作范例,让读者亲身体验Git工作的细节,并且掌握每一个指令的效果以及每一个选项的使用时机。虽然网络上有许多采用GUI(图形用户界面)的Git程序,但是笔者不建议初学者一开始就使用这类型的程序。因为它的操作界面过于复杂,初学者在还没有完全了解的情况下,常常会觉得疑惑,反而容易让学习失去重点。相比之下,输入Git指令的操作方式虽然比较麻烦一点,但是却比较清楚,初学者可以完全理解每一个操作和选项所达成的结果。等到建立好Git指令操作的基础之后,再来使用GUI界面的Git程序,就会水到渠成,轻而易举。
《完全学会Git GitHub Git Server的24堂课》的内容安排先从Git的单机操作开始,让读者先了解Git如何工作,并且熟悉配置文件和文件库的基本操作方法。接着学习如何建立分支、合并分支和解决冲突。等到基础完备之后,再来介绍GUI操作界面的Git程序,让读者体验不同的操作风格。接着学习Git在团队开发模式的应用,以及介绍网络上提供Git文件库存储服务的网站。让读者了解如何使用这些资源,辅助程序项目的开发。使用这些网站的另一个好处是可以藉此参与开放源码的程序项目,提升自己程序开发的经验和能力。《完全学会Git GitHub Git Server的24堂课》的最后部分是介绍架设GitServer的几种方法,让每一个项目开发团队,可以按照自己的软硬件环境,选择适合的方式来管理和控制项目。
相信通过《完全学会Git GitHub Git Server的24堂课》精心编排的学习单元,能够顺利地引导初学者,一步一步地建立完整的操作观念和技巧,并且培养在不同情况下的应用能力。一旦读者能够完全掌握Git之后,它必定成为你或是你的团队开发程序项目的最佳助手!
孙宏明