-
pro git(中文版)下载
资源介绍
目录
1 起步1
1.1 关于版本控制. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 本地版本控制系统. . . . . . . . . . . . . . . . . . . . . . 1
1.1.2 集中化的版本控制系统. . . . . . . . . . . . . . . . . . . . 1
1.1.3 分布式版本控制系统. . . . . . . . . . . . . . . . . . . . . 2
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 忽略某些文件. . . . . . . . . . . . . . . . . . . . . . . . 17
2.2.5 查看已暂存和未暂存的更新. . . . . . . . . . . . . . . . . . 18
2.2.6 提交更新. . . . . . . . . . . . . . . . . . . . . . . . . . 20
iii
2.2.7 跳过使用暂存区域. . . . . . . . . . . . . . . . . . . . . . 21
2.2.8 移除文件. . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2.9 移动文件. . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.3 查看提交历史. . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.3.1 限制输出长度. . . . . . . . . . . . . . . . . . . . . . . . 28
2.3.2 使用图形化工具查阅提交历史. . . . . . . . . . . . . . . . . 29
2.4 撤消操作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.4.1 修改最后一次提交. . . . . . . . . . . . . . . . . . . . . . 29
2.4.2 取消已经暂存的文件. . . . . . . . . . . . . . . . . . . . . 30
2.4.3 取消对文件的修改. . . . . . . . . . . . . . . . . . . . . . 31
2.5 远程仓库的使用. . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.5.1 查看当前的远程库. . . . . . . . . . . . . . . . . . . . . . 32
2.5.2 添加远程仓库. . . . . . . . . . . . . . . . . . . . . . . . 32
2.5.3 从远程仓库抓取数据. . . . . . . . . . . . . . . . . . . . . 33
2.5.4 推送数据到远程仓库. . . . . . . . . . . . . . . . . . . . . 33
2.5.5 查看远程仓库信息. . . . . . . . . . . . . . . . . . . . . . 34
2.5.6 远程仓库的删除和重命名. . . . . . . . . . . . . . . . . . . 35
2.6 打标签. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.6.1 列显已有的标签. . . . . . . . . . . . . . . . . . . . . . . 35
2.6.2 新建标签. . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.6.3 含附注的标签. . . . . . . . . . . . . . . . . . . . . . . . 36
2.6.4 签署标签. . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.6.5 轻量级标签. . . . . . . . . . . . . . . . . . . . . . . . . 37
2.6.6 验证标签. . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.6.7 后期加注标签. . . . . . . . . . . . . . . . . . . . . . . . 38
2.6.8 分享标签. . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.7 技巧和窍门. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.7.1 自动完成. . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.7.2 Git 命令别名. . . . . . . . . . . . . . . . . . . . . . . . 41
2.8 小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3 Git 分支43
3.1 何谓分支. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.2 基本的分支与合并. . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.2.1 基本分支. . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.2.2 基本合并. . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.2.3 冲突的合并. . . . . . . . . . . . . . . . . . . . . . . . . 52
3.3 分支管理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.4 分支式工作流程. . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.4.1 长期分支. . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.4.2 特性分支. . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.5 远程分支. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.5.1 推送. . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.5.2 跟踪分支. . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.5.3 删除远程分支. . . . . . . . . . . . . . . . . . . . . . . . 62
3.6 衍合. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
iv
3.6.1 衍合基础. . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.6.2 更多有趣的衍合. . . . . . . . . . . . . . . . . . . . . . . 64
3.6.3 衍合的风险. . . . . . . . . . . . . . . . . . . . . . . . . 66
3.7 小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4 服务器上的Git 69
4.1 协议. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.1.1 本地协议. . . . . . . . . . . . . . . . . . . . . . . . . . 69
优点. . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
缺点. . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.1.2 SSH 协议. . . . . . . . . . . . . . . . . . . . . . . . . . 70
优点. . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
缺点. . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.1.3 Git 协议. . . . . . . . . . . . . . . . . . . . . . . . . . 71
优点. . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
缺点. . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.1.4 HTTP/S 协议. . . . . . . . . . . . . . . . . . . . . . . . . 72
优点. . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
缺点. . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.2 在服务器部署Git . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.2.1 将纯目录转移到服务器. . . . . . . . . . . . . . . . . . . . 73
4.2.2 小型安装. . . . . . . . . . . . . . . . . . . . . . . . . . 74
SSH 连接. . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.3 生成SSH 公钥. . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.4 架设服务器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.5 公共访问. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
4.6 网页界面GitWeb . . . . . . . . . . . . . . . . . . . . . . . . . . 79
4.7 权限管理器Gitosis . . . . . . . . . . . . . . . . . . . . . . . . . 80
4.8 Git 进程. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
4.9 Git 托管服务. . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
4.9.1 GitHub . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
4.9.2 建立账户. . . . . . . . . . . . . . . . . . . . . . . . . . 87
4.9.3 建立新仓库. . . . . . . . . . . . . . . . . . . . . . . . . 87
4.9.4 从Subversion 中导入项目. . . . . . . . . . . . . . . . . . 89
4.9.5 开始合作. . . . . . . . . . . . . . . . . . . . . . . . . . 90
4.9.6 项目页面. . . . . . . . . . . . . . . . . . . . . . . . . . 91
4.9.7 派生(forking)项目. . . . . . . . . . . . . . . . . . . . . 92
4.9.8 GitHub 小节. . . . . . . . . . . . . . . . . . . . . . . . . 93
4.10 小节. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
5 分布式Git 95
5.1 分布式工作流程. . . . . . . . . . . . . . . . . . . . . . . . . . . 95
5.1.1 集中式工作流. . . . . . . . . . . . . . . . . . . . . . . . 95
5.1.2 集成管理员工作流. . . . . . . . . . . . . . . . . . . . . . 96
5.1.3 司令官与副官工作流. . . . . . . . . . . . . . . . . . . . . 97
5.2 为项目作贡献. . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
v
5.2.1 提交指南. . . . . . . . . . . . . . . . . . . . . . . . . . 98
5.2.2 私有的小型团队. . . . . . . . . . . . . . . . . . . . . . . 99
5.2.3 私有团队间协作. . . . . . . . . . . . . . . . . . . . . . . 104
5.2.4 公开的小型项目. . . . . . . . . . . . . . . . . . . . . . . 108
5.2.5 公开的大型项目. . . . . . . . . . . . . . . . . . . . . . . 112
5.2.6 小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
5.3 项目的管理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
5.3.1 使用特性分支进行工作. . . . . . . . . . . . . . . . . . . . 115
5.3.2 采纳来自邮件的补丁. . . . . . . . . . . . . . . . . . . . . 115
使用apply 命令应用补丁. . . . . . . . . . . . . . . . . . . 115
使用am 命令应用补丁. . . . . . . . . . . . . . . . . . . . 116
5.3.3 检出远程分支. . . . . . . . . . . . . . . . . . . . . . . . 118
5.3.4 决断代码取舍. . . . . . . . . . . . . . . . . . . . . . . . 118
5.3.5 代码集成. . . . . . . . . . . . . . . . . . . . . . . . . . 119
合并流程. . . . . . . . . . . . . . . . . . . . . . . . . . 120
大项目的合并流程. . . . . . . . . . . . . . . . . . . . . . 122
衍合与挑拣(cherry-pick)的流程. . . . . . . . . . . . . . . 122
5.3.6 给发行版签名. . . . . . . . . . . . . . . . . . . . . . . . 123
5.3.7 生成内部版本号. . . . . . . . . . . . . . . . . . . . . . . 124
5.3.8 准备发布. . . . . . . . . . . . . . . . . . . . . . . . . . 125
5.3.9 制作简报. . . . . . . . . . . . . . . . . . . . . . . . . . 125
5.4 小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
6 Git 工具127
6.1 修订版本(Revision)选择. . . . . . . . . . . . . . . . . . . . . . 127
6.1.1 单个修订版本. . . . . . . . . . . . . . . . . . . . . . . . 127
6.1.2 简短的SHA . . . . . . . . . . . . . . . . . . . . . . . . . . 127
6.1.3 关于SHA-1 的简短说明. . . . . . . . . . . . . . . . . . . . 128
6.1.4 分支引用. . . . . . . . . . . . . . . . . . . . . . . . . . 129
6.1.5 引用日志里的简称. . . . . . . . . . . . . . . . . . . . . . 129
6.1.6 祖先引用. . . . . . . . . . . . . . . . . . . . . . . . . . 130
6.1.7 提交范围. . . . . . . . . . . . . . . . . . . . . . . . . . 132
双点. . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
多点. . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
三点. . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
6.2 交互式暂存. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
6.2.1 暂存和撤回文件. . . . . . . . . . . . . . . . . . . . . . . 134
6.2.2 暂存补丁. . . . . . . . . . . . . . . . . . . . . . . . . . 136
6.3 储藏(Stashing) . . . . . . . . . . . . . . . . . . . . . . . . . . 137
6.3.1 储藏你的工作. . . . . . . . . . . . . . . . . . . . . . . . 138
6.3.2 从储藏中创建分支. . . . . . . . . . . . . . . . . . . . . . 139
6.4 重写历史. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
6.4.1 改变最近一次提交. . . . . . . . . . . . . . . . . . . . . . 140
6.4.2 修改多个提交说明. . . . . . . . . . . . . . . . . . . . . . 141
6.4.3 重排提交. . . . . . . . . . . . . . . . . . . . . . . . . . 142
6.4.4 压制(Squashing)提交. . . . . . . . . . . . . . . . . . . . . 143
vi
6.4.5 拆分提交. . . . . . . . . . . . . . . . . . . . . . . . . . 144
6.4.6 核弹级选项: filter-branch . . . . . . . . . . . . . . . . . . 144
从所有提交中删除一个文件. . . . . . . . . . . . . . . . . . 144
将一个子目录设置为新的根目录. . . . . . . . . . . . . . . . 145
全局性地更换电子邮件地址. . . . . . . . . . . . . . . . . . 145
6.5 使用Git 调试. . . . . . . . . . . . . . . . . . . . . . . . . . . 146
6.5.1 文件标注. . . . . . . . . . . . . . . . . . . . . . . . . . 146
6.5.2 二分查找. . . . . . . . . . . . . . . . . . . . . . . . . . 147
6.6 子模块. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
6.6.1 子模块初步. . . . . . . . . . . . . . . . . . . . . . . . . 149
6.6.2 克隆一个带子模块的项目. . . . . . . . . . . . . . . . . . . 151
6.6.3 上层项目. . . . . . . . . . . . . . . . . . . . . . . . . . 153
6.6.4 子模块的问题. . . . . . . . . . . . . . . . . . . . . . . . 153
6.7 子树合并. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
6.8 总结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
7 自定义Git 157
7.1 配置Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
7.1.1 客户端基本配置. . . . . . . . . . . . . . . . . . . . . . . 157
core.editor . . . . . . . . . . . . . . . . . . . . . . . . . 158
commit.template . . . . . . . . . . . . . . . . . . . . . . . 158
core.pager . . . . . . . . . . . . . . . . . . . . . . . . . 159
user.signingkey . . . . . . . . . . . . . . . . . . . . . . . 159
core.excludesfile . . . . . . . . . . . . . . . . . . . . . . 159
help.autocorrect . . . . . . . . . . . . . . . . . . . . . . 159
7.1.2 Git中的着色. . . . . . . . . . . . . . . . . . . . . . . . . 160
color.ui . . . . . . . . . . . . . . . . . . . . . . . . . . 160
color.* . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
7.1.3 外部的合并与比较工具. . . . . . . . . . . . . . . . . . . . 160
7.1.4 格式化与空白. . . . . . . . . . . . . . . . . . . . . . . . 163
core.autocrlf . . . . . . . . . . . . . . . . . . . . . . . . 163
core.whitespace . . . . . . . . . . . . . . . . . . . . . . . 164
7.1.5 服务器端配置. . . . . . . . . . . . . . . . . . . . . . . . 164
receive.fsckObjects . . . . . . . . . . . . . . . . . . . . . 164
receive.denyNonFastForwards . . . . . . . . . . . . . . . . . 165
receive.denyDeletes . . . . . . . . . . . . . . . . . . . . . 165
7.2 Git属性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
7.2.1 二进制文件. . . . . . . . . . . . . . . . . . . . . . . . . 165
识别二进制文件. . . . . . . . . . . . . . . . . . . . . . . 165
比较二进制文件. . . . . . . . . . . . . . . . . . . . . . . 166
7.2.2 关键字扩展. . . . . . . . . . . . . . . . . . . . . . . . . 168
7.2.3 导出仓库. . . . . . . . . . . . . . . . . . . . . . . . . . 170
export-ignore . . . . . . . . . . . . . . . . . . . . . . . . 170
export-subst . . . . . . . . . . . . . . . . . . . . . . . . 170
7.2.4 合并策略. . . . . . . . . . . . . . . . . . . . . . . . . . 171
7.3 Git挂钩. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
vii
7.3.1 安装一个挂钩. . . . . . . . . . . . . . . . . . . . . . . . 171
7.3.2 客户端挂钩. . . . . . . . . . . . . . . . . . . . . . . . . 171
提交工作流挂钩. . . . . . . . . . . . . . . . . . . . . . . 171
E-mail工作流挂钩. . . . . . . . . . . . . . . . . . . . . . 172
其他客户端挂钩. . . . . . . . . . . . . . . . . . . . . . . 172
7.3.3 服务器端挂钩. . . . . . . . . . . . . . . . . . . . . . . . 173
pre-receive 和post-receive . . . . . . . . . . . . . . . . . 173
update . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
7.4 Git 强制策略实例. . . . . . . . . . . . . . . . . . . . . . . . . . 173
7.4.1 服务端挂钩. . . . . . . . . . . . . . . . . . . . . . . . . 173
指定特殊的提交信息格式. . . . . . . . . . . . . . . . . . . 174
实现基于用户的访问权限控制列表(ACL)系统. . . . . . . . . . 175
只允许Fast-Forward 类型的推送. . . . . . . . . . . . . . . 177
7.4.2 Client-Side Hooks . . . . . . . . . . . . . . . . . . . . . . 179
7.5 总结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
8 Git 与其他系统183
8.1 Git 与Subversion . . . . . . . . . . . . . . . . . . . . . . . . . 183
8.1.1 git svn . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
8.1.2 初始设定. . . . . . . . . . . . . . . . . . . . . . . . . . 184
8.1.3 入门. . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
8.1.4 提交到Subversion . . . . . . . . . . . . . . . . . . . . . . 186
8.1.5 拉取最新进展. . . . . . . . . . . . . . . . . . . . . . . . 187
8.1.6 Git 分支问题. . . . . . . . . . . . . . . . . . . . . . . . 188
8.1.7 Subversion 分支. . . . . . . . . . . . . . . . . . . . . . . 189
创建新的SVN 分支. . . . . . . . . . . . . . . . . . . . . . 189
8.1.8 切换当前分支. . . . . . . . . . . . . . . . . . . . . . . . 190
8.1.9 对应Subversion 的命令. . . . . . . . . . . . . . . . . . . 190
SVN 风格的历史. . . . . . . . . . . . . . . . . . . . . . . 190
SVN 日志. . . . . . . . . . . . . . . . . . . . . . . . . . 191
SVN 服务器信息. . . . . . . . . . . . . . . . . . . . . . . 191
略Subversion 之所略. . . . . . . . . . . . . . . . . . . . 192
8.1.10 Git-Svn 总结. . . . . . . . . . . . . . . . . . . . . . . . 192
8.2 迁移到Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
8.2.1 导入. . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
8.2.2 Subversion . . . . . . . . . . . . . . . . . . . . . . . . . 193
8.2.3 Perforce . . . . . . . . . . . . . . . . . . . . . . . . . . 194
8.2.4 自定导入脚本. . . . . . . . . . . . . . . . . . . . . . . . 196
8.3 总结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
9 Git 内部原理203
9.1 底层命令(Plumbing) 和高层命令(Porcelain) . . . . . . . . . . . . . 203
9.2 Git 对象. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
9.2.1 tree (树) 对象. . . . . . . . . . . . . . . . . . . . . . . 206
9.2.2 commit (提交) 对象. . . . . . . . . . . . . . . . . . . . . 208
9.2.3 对象存储. . . . . . . . . . . . . . . . . . . . . . . . . . 210
viii
9.3 Git References . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
9.3.1 HEAD 标记. . . . . . . . . . . . . . . . . . . . . . . . . . 213
9.3.2 Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
9.3.3 Remotes . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
9.4 Packfiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
9.5 The Refspec . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
9.5.1 推送Refspec . . . . . . . . . . . . . . . . . . . . . . . . 220
9.5.2 删除引用. . . . . . . . . . . . . . . . . . . . . . . . . . 221
9.6 传输协议. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
9.6.1 哑协议. . . . . . . . . . . . . . . . . . . . . . . . . . . 221
9.6.2 智能协议. . . . . . . . . . . . . . . . . . . . . . . . . . 223
上传数据. . . . . . . . . . . . . . . . . . . . . . . . . . 223
下载数据. . . . . . . . . . . . . . . . . . . . . . . . . . 224
9.7 维护及数据恢复. . . . . . . . . . . . . . . . . . . . . . . . . . . 225
9.7.1 维护. . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
9.7.2 数据恢复. . . . . . . . . . . . . . . . . . . . . . . . . . 226
9.7.3 移除对象. . . . . . . . . . . . . . . . . . . . . . . . . . 228
9.8 总结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
- 上一篇: netdraw2.118
- 下一篇: SmartDraw 2012-2013 破解补丁