Git中文手册
{"type":"documentation"}
Scott Chacon 序
Ben Straub 序
献辞
贡献者
引言
起步
关于版本控制
本地版本控制系统
集中化的版本控制系统
分布式版本控制系统
Git 简史
Git 基础
直接记录快照,而非差异比较
近乎所有操作都是本地执行
Git 保证完整性
Git 一般只添加数据
三种状态
命令行
安装 Git
在 Linux 上安装
在 Mac 上安装
在 Windows 上安装
从源代码安装
初次运行 Git 前的配置
用户信息
文本编辑器
检查配置信息
获取帮助
总结
Git 基础
获取 Git 仓库
在现有目录中初始化仓库
克隆现有的仓库
记录每次更新到仓库
检查当前文件状态
跟踪新文件
暂存已修改文件
状态简览
忽略文件
查看已暂存和未暂存的修改
提交更新
跳过使用暂存区域
移除文件
移动文件
查看提交历史
限制输出长度
撤消操作
取消暂存的文件
撤消对文件的修改
远程仓库的使用
查看远程仓库
添加远程仓库
从远程仓库中抓取与拉取
推送到远程仓库
查看远程仓库
远程仓库的移除与重命名
打标签
列出标签
创建标签
附注标签
轻量标签
后期打标签
共享标签
检出标签
Git 别名
总结
Git 分支
分支简介
分支创建
分支切换
分支的新建与合并
新建分支
分支的合并
遇到冲突时的分支合并
分支管理
分支开发工作流
长期分支
特性分支
远程分支
推送
跟踪分支
拉取
删除远程分支
变基
变基的基本操作
更有趣的变基例子
变基的风险
用变基解决变基
变基 vs. 合并
总结
服务器上的 Git
协议
本地协议
HTTP 协议
SSH 协议
Git 协议
在服务器上搭建 Git
把裸仓库放到服务器上
小型安装
生成 SSH 公钥
配置服务器
Git 守护进程
Smart HTTP
GitWeb
GitLab
安装
管理
基本用途
一起工作
第三方托管的选择
总结
分布式 Git
分布式工作流程
集中式工作流
集成管理者工作流
司令官与副官工作流
工作流程总结
向一个项目贡献
提交准则
私有小型团队
私有管理团队
派生的公开项目
通过邮件的公开项目
总结
维护项目
在特性分支中工作
应用来自邮件的补丁
检出远程分支
确定引入了哪些东西
将贡献的工作整合进来
为发布打标签
生成一个构建号
准备一次发布
制作提交简报
总结
GitHub
账户的创建和配置
SSH 访问
头像
邮件地址
两步验证
对项目做出贡献
派生(Fork)项目
GitHub 流程
合并请求的进阶用法
Markdown
维护项目
创建新的版本库
添加合作者
管理合并请求
提醒和通知
通知页面
网页通知
邮件通知
特殊文件
README
贡献 CONTRIBUTING
项目管理
管理组织
组织的基本知识
团队
审计日志
脚本 GitHub
钩子
GitHub API
基本用途
在一个问题上评论
修改 Pull Request 的状态
Octokit
总结
Git 工具
选择修订版本
单个修订版本
简短的 SHA-1
分支引用
引用日志
祖先引用
提交区间
交互式暂存
暂存与取消暂存文件
暂存补丁
储藏与清理
储藏工作
创造性的储藏
从储藏创建一个分支
清理工作目录
签署工作
GPG 介绍
签署标签
验证标签
签署提交
每个人必须签署
搜索
Git Grep
Git 日志搜索
重写历史
修改最后一次提交
修改多个提交信息
重新排序提交
压缩提交
拆分提交
核武器级选项:filter-branch
重置揭密
三棵树
工作流程
重置的作用
通过路径来重置
压缩
检出
总结
高级合并
合并冲突
撤消合并
其他类型的合并
Rerere
使用 Git 调试
文件标注
二分查找
子模块
开始使用子模块
克隆含有子模块的项目
在包含子模块的项目上工作
子模块技巧
子模块的问题
打包
替换
凭证存储
底层实现
自定义凭证缓存
总结
自定义 Git
配置 Git
客户端基本配置
Git 中的着色
外部的合并与比较工具
格式化与多余的空白字符
服务器端配置
Git 属性
二进制文件
关键字展开
导出版本库
合并策略
Git 钩子
安装一个钩子
客户端钩子
服务器端钩子
使用强制策略的一个例子
服务器端钩子
客户端钩子
总结
Git 与其他系统
作为客户端的 Git
Git 与 Subversion
Git 与 Mercurial
Git 与 Perforce
Git 与 TFS
迁移到 Git
Subversion
Mercurial
Perforce
TFS
一个自定义的导入器
总结
Git 内部原理
底层命令和高层命令
Git 对象
树对象
提交对象
对象存储
Git 引用
HEAD 引用
标签引用
远程引用
包文件
引用规格
引用规格推送
删除引用
传输协议
哑协议
智能协议
协议总结
维护与数据恢复
维护
数据恢复
移除对象
环境变量
全局行为
版本库位置
路径规则
提交
网络
比较和合并
调试
其它
总结
其它环境中的 Git
图形界面
gitk 和 git-gui
Mac 和 Windows 上的 GitHub 客户端
其它图形界面
Visual Studio 中的 Git
Eclipse 中的 Git
Bash 中的 Git
Zsh 中的 Git
Powershell 中的 Git
总结
将 Git 嵌入你的应用
命令行 Git 方式
Libgit2
高级功能
其它绑定
扩展阅读
JGit
起步
底层命令
高层命令
拓展阅读
Git 命令
设置与配置
git config
git help
获取与创建项目
git init
git clone
快照基础
git add
git status
git diff
git difftool
git commit
git reset
git rm
git mv
git clean
分支与合并
git branch
git checkout
git merge
git mergetool
git log
git stash
git tag
项目分享与更新
git fetch
git pull
git push
git remote
git archive
git submodule
检查与比较
git show
git shortlog
git describe
调试
git bisect
git blame
git grep
补丁
git cherry-pick
git rebase
git revert
邮件
git apply
git am
git format-patch
git imap-send
git send-email
git request-pull
外部系统
git svn
git fast-import
管理
git gc
git fsck
git reflog
git filter-branch
底层命令
Index
Next
Previous