title: Git 版本控制管理
tags:
- Git
categories: - 工具
date: 2019-05-20
🌞安装Git
使用Linux上的二进制发行版
- Debian/Ubuntu
- 其他发行版
- 获取源代码
- 构建和安装
在Windows上安装Git
Git命令行
Git使用快速入门
- 创建和初始化版本库
- 将文件添加到版本库中
- 配置提交作者
- 再次提交
- 查看提交
- 查看提交差异
- 版本库内文件的删除和重命名
- 创建版本库副本
- 配置文件
- 疑问
🌞基本的Git概念
基本概念
- 版本库
- Git对象类型
- 索引
- 可寻址内容名称
- Git追踪内容
- 路径名与内容
- 打包文件
- 对象库图示
Git在工作时的概念
- 进入.git目录
- 对象、散列和blob
- 文件和树
- 对Git使用SHA1的一点说明
- 树层次结构
- 提交
- 标签
🌞文件管理和索引
- 关于索引的一切
- Git中的文件分类
- 使用git add
使用git commit 的一些注意事项
- 使用git commit —all
- 编写提交日志消息
- 使用git rm
- 使用git mv
- 追踪重命名注解
- .gitignore文件
- Git中对象模型和文件的详细视图
🌞提交
- 原子变更集
识别提交
- 绝对提交名
- 引用和符号引用
- 相对提交名
提交历史记录
- 查看旧提交
- 提交图
- 提交范围
查找提交
- 使用git bisect
- 使用git blame
- 使用Pickaxe
🌞分支
- 使用分支的原因
- 分支名
- 使用分支
- 创建分支
- 列出分支名
- 查看分支
检出分支
- 检出分支的一个简单例子
- 有未提交的更改时进行检出
- 合并变更到不同的分支
- 创建并检出新分支
- 分离HEAD分支
- 删除分支
🌞diff
- git diff命令的格式
- 简单的git diff例子
- git diff和提交范围
- 路径限制的git diff
- 比较SVN和Git如何产生diff
🌞合并
合并的例子
- 为合并做准备
- 合并两个分支
- 有冲突的合并
处理合并冲突
- 定位冲突的文件
- 检查冲突
- Git是如何追踪冲突的
- 结束解决冲突
- 终止或者重新启动合并分支
合并策略
- 退化合并
- 常规合并特殊提交
- 应用合并策略
- 合并驱动程序
Git怎么看待合并
- 合并和Git的对象模型
- 压制合并
- 为什么不一个接一个地合并每个变更
🌞更改提交
- 关于修改历史记录的注意事项
- 使用git reset
- 使用git cherry-pick
- 使用git revert
- reset、revert和checkout
- 修改最新提交
变基提交
- 使用git rebase -i
- 变基与合并
🌞储藏和引用日志
- 储藏
- 引用日志
🌞远程版本库
版本库概念
- 裸版本库和开发版本库
- 版本库克隆
- 远程版本库
- 追踪分支
引用其他版本库
- 引用远程版本库
- refspec
使用远程版本库的示例
- 创建权威版本库
- 制作你自己的origin远程版本库
- 在版本库中进行开发
- 推送变更
- 添加新开发人员
- 获取版本库更新
图解远程版本库开发周期
- 克隆版本库
- 交替的历史记录
- 非快进推送
- 获取交替历史记录
- 合并历史记录
- 合并冲突
- 推送合并后的历史记录
远程版本库配置
- 使用git remote
- 使用git config
- 使用手动编辑