入门
本人通过阅读pro-git确定了一套快速入门git的策略,内容大概400行,建议配合书籍pro-git可以关心侧重点和核心命令快速上手git
关于版本控制系统
使用版本控制系统方便追溯文件历史变化信息,方便工作人员进行对比,方便保存多版本文件
本地版本控制系统
不需要看
集中版本控制系统
一个包含文件所有版本的单一服务器,多个客户端从中心检出文件:
- 优点:权限控制精细,细节精细
- 缺点:单点故障时丢失历史版本和服务器资源
分布式版本控制系统
检出快照 没有单点故障问题,可以本地版本控制
git简史
2005年Linux开发者和Bitkeeper关系破裂 Bitkeeper收回了软件使用权,迫使其开发一套完备的版本控制系统–git
git基础
快照,而非差异
git与其他诸如SVN,CVS 处理数据方式不同,每次git提交或保存时记录的是快照(文件没有变化时不重新保存)
多数操作在本地执行
得益于快照复制特点可以在本地进行版本控制,等到有网时更新,既优化传输速度又解决了断网不能工作的情况
git的完整性
使用SHA-1散列函数签名,通过检验计算可以避免版本丢失的情况
git只增加数据
一旦版本提交,不可能丢失
git三种状态
- 已暂存:工作空间中已经添加版本控制的文件状态
- 已提交:已经保存到git仓库的文件装态
- 已修改:对已经保存的文件修改后状态
暂存区本质是一个保存下次提交内容的文件
git工作流程如下
- 新增/修改文件
- 暂存到工作区
- 提交暂存文件
git 命令行
推荐使用命令行少用GUI,原因是GUI不可能讲所有参数完美表达
安装git
Linux Mac 使用各自的包管理工具安装,windows直接下载安装,源码安装先安装依赖,在使用make构建安装并配置环境变量
git首次配置
git confi存储用户配置信息 可通过git config或者修改配置文件实现
- /etc/gitconfig:当传入git config --system时从该文件读写配置
- ~/.gitconfig或~/.config/git/config 传入–global使git专门从该文件读写配置
- 当前仓库git目录(也就是.git/config)
用户身份
通过git config 配置个人邮箱和用户名
git config --global user.email=XXX
git config --global user.name=XXX
配置默认使用编辑器
git config --global core.editor=code 我使用的是vs code
检查个人设置
# 检查所设置的配置信息
git-config --list
###获取帮助的三种方式
git help <verb>
git <verb> --help
man git-<verb>
git 基础
获取GIT仓库
- 初始化
- 从远程仓库克隆
# 初始化当前目录为git仓库,会创建.git(包含git运行的骨架,具体参考第十章)子目录,
git init
# 从远程仓库克隆,会创建和远程仓库一样的目录结构以及,可通过 git clone [url] [dir] 指定文件夹名称.git clone 支持https和ssh传输(第四章会提及并分析优劣)
git clone [url]
记录文件变更
查看文件状态
# 查看文件状态
git status