没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论























Pro Git
Scott Chacon
*
2013-08-03
*
This is the PDF file for the Pro Git book contents. It is licensed under the Creative Commons
Attribution-Non Commercial-Share Alike 3.0 license. I hope you enjoy it, I hope it helps you
learn Git, and I hope you’ll support Apress and me by purchasing a print copy of the book at
Amazon: http://tinyurl.com/amazonprogit


目录
1 起步 1
1.1 关于版本控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 本地版本控制系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.2 集中化的版本控制系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.3 分布式版本控制系统 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Git 简史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Git 基础 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3.1 直接记录快照,而非差异比较 . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3.2 近乎所有操作都是本地执行 . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.3 时刻保持数据完整性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.4 多数操作仅添加数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.5 文件的三种状态 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4 安装 Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4.1 从源代码安装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4.2 在 Linux 上安装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4.3 在 Mac 上安装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4.4 在 Windows 上安装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5 初次运行 Git 前的配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5.1 用户信息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5.2 文本编辑器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5.3 差异分析工具 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.5.4 查看配置信息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.6 获取帮助 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.7 小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2 Git 基础 13
2.1 取得项目的 Git 仓库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.1 在工作目录中初始化新仓库 . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.2 从现有仓库克隆 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2 记录每次更新到仓库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.1 检查当前文件状态 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.2 跟踪新文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.3 暂存已修改文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2.4 忽略某些文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2.5 查看已暂存和未暂存的更新 . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.6 提交更新 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
iii

2.2.7 跳过使用暂存区域 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2.8 移除文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.9 移动文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.3 查看提交历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.3.1 限制输出长度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.3.2 使用图形化工具查阅提交历史 . . . . . . . . . . . . . . . . . . . . . . . . 30
2.4 撤消操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.4.1 修改最后一次提交 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.4.2 取消已经暂存的文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.4.3 取消对文件的修改 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.5 远程仓库的使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.5.1 查看当前的远程库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.5.2 添加远程仓库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.5.3 从远程仓库抓取数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.5.4 推送数据到远程仓库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.5.5 查看远程仓库信息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.5.6 远程仓库的删除和重命名 . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.6 打标签 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.6.1 列显已有的标签 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.6.2 新建标签 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.6.3 含附注的标签 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.6.4 签署标签 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.6.5 轻量级标签 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.6.6 验证标签 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.6.7 后期加注标签 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.6.8 分享标签 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.7 技巧和窍门 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.7.1 自动补全 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.7.2 Git 命令别名 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.8 小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3 Git 分支 47
3.1 何谓分支 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.2 分支的新建与合并 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.2.1 分支的新建与切换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.2.2 分支的合并 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.2.3 遇到冲突时的分支合并 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.3 分支的管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.4 利用分支进行开发的工作流程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.4.1 长期分支 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.4.2 特性分支 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.5 远程分支 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.5.1 推送本地分支 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.5.2 跟踪远程分支 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.5.3 删除远程分支 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.6 分支的衍合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
iv

3.6.1 基本的衍合操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.6.2 有趣的衍合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.6.3 衍合的风险 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.7 小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4 服务器上的 Git 75
4.1 协议 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.1.1 本地协议 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
优点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
缺点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.1.2 SSH 协议 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
优点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
缺点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
4.1.3 Git 协议 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
优点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
缺点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
4.1.4 HTTP/S 协议 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
优点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
缺点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
4.2 在服务器上部署 Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
4.2.1 把裸仓库移到服务器上 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
4.2.2 小型安装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
SSH 连接 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
4.3 生成 SSH 公钥 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4.4 架设服务器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
4.5 公共访问 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
4.6 GitWeb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4.7 Gitosis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
4.8 Gitolite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
4.8.1 Installing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.8.2 Customising the Install . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
4.8.3 Config File and Access Control Rules . . . . . . . . . . . . . . . . . . 93
4.8.4 Advanced Access Control with “deny” rules . . . . . . . . . . . . 95
4.8.5 Restricting pushes by files changed . . . . . . . . . . . . . . . . . . . 96
4.8.6 Personal Branches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
4.8.7 “Wildcard” repositories . . . . . . . . . . . . . . . . . . . . . . . . . . 96
4.8.8 Other Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
4.9 Git 守护进程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
4.10 Git 托管服务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
4.10.1 GitHub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
4.10.2 建立新账户 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
4.10.3 建立新仓库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
4.10.4 从 Subversion 导入项目 . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
4.10.5 添加协作开发者 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
4.10.6 项目页面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
4.10.7 派生项目 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
v
剩余256页未读,继续阅读
资源评论


Prometheus2060
- 粉丝: 4
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 企业网络系统建设的意义.doc
- 智能制造背景下物联网专业教学模式的探索.docx
- 监理规划范本vb.doc
- 信息化系统-安全运维服务专业技术方案专业技术方案(标书).docx
- 幼师计算机任务驱动式教学中的任务设计分析.docx
- C++设计方案程序考试管理系统.doc
- 软件产品的渠道运营方案.docx
- 构建互联网+小学数学微课课堂研究.docx
- 做中学理论在计算机教学中的应用.docx
- 神经网络与深度学习课程设计(Neural-NetworksAndDeep-Learning新闻文本分类)
- (源码)基于Next.js框架的Fiama Comunity页面模仿.zip
- 大型工程建设项目管理方法的研究与实践.docx
- 农村地区互联网金融发展现状分析.docx
- 如何在windowsXP操作系统上安装iis怎么样建立网站.doc
- 八上信息技术Flash教案.doc
- 电力通信或成5G网络切片技术商业化突破.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
