今天介绍下版本管理工具:git的一些常用命令
git介绍
- Git是目前世界上最先进的分布式版本控制系统
- 可以有效、高速地处理从很小到非常大的项目版本管理
git原理(参考 )
- 暂存操作会对先每一个文件计算校验和checksum(Git 使用SHA-1 算法计算数据的校验和,通过对文件的内容或目录的结构计算出一个SHA-1 哈希值,作为指纹字符串,该字串由40 个十六进制字符,并将此结果作为数据的唯一标识和索引),然后把当前版本的文件快照保存到本地Git 仓库中(Git 使用blob 类型的对象存储这些文件内容快照),并将校验和加入暂存区域
- 使用git commit 新建一个提交对象前,Git 会先计算每一个子目录(项目根目录)的校验和,然后在Git 仓库中将这些目录保存为树(tree)对象。之后Git 创建的提交对象,除了包含相关提交信息以外,还包含着指向这个树对象(项目根目录)的指针,如此它就可以在将来需要的时候,重现此次快照的内容了
- 分支:
- Git 中的分支实际上仅是一个包含所指对象校验和(40 个字符长度SHA-1 字串)的文件,所以创建和销毁一个分支就变得非常廉价。新建一个分支就是向一个文件写入41 个字节(外加一个换行符)
- Git 创建一个新的分支仅仅是创建一个新的分支指针
- 有一个名为HEAD 的特别指针,运行git branch 命令,仅仅是建立了一个新的分支,但不会自动切换到这个分支中,所以当前我们仍然在master分支
- git checkout testing,git仅仅是将HEAD指针指向了testing,几乎瞬间完成
- 如果这时我们再次修改了文件,并提交(git commit ),仅仅是testing分支指向了最新commit ,而master仍指向在原来的commit
- 使用git checkout master切换回master分支。git做了两件事它把HEAD 指针移回到master 分支,并把工作目录中的文件换成了master 分支所指向的快照内容
- 在master分支我们修改文件再进行提交,这时项目提交历史产生了分叉
git常用命令介绍
- git init: 初始化
- git add :对修改保存暂存区
- git commit: 提交改动,生成当前项目的一个快照
- git config user.name “用户名” git config user.email “Email 地址” 设置用户名和邮件地址
- git branch a: 创建分支a
- git checkout a : 切换到分支a(先保存当前分支的改动)
- git merge a: a分支合并到当前分支
- git log: 查看整个版本历史
- git pull: 获取远程分支的更新(别人的改动)
- git push:自己的改动推到远端(方便别人获取)
-