1、基本概念
git是一个分布式的版本管理系统
git把内容按元数据方式存储
2、git核心命令的使用
初始化:git init 名称
把文件添加到暂存区:git add 文件名、git add -A (全部文件添加进去)
把文件从暂存区删除:git rm --cached 文件名
从暂存区提交到本地仓库:git commit 文件名/-am(全部文件) -m '注释'
查看文件状态:git status
添加远程仓库:git remote add 名称 远程仓库地址
推送文件到远程仓库:git push (远程仓库)
下载远程仓库项目:git clone 远程仓库地址 名称
更新本地代码:git pull
3、分支管理
查看当前分支:git branch [-avv](包含远程分支)
-a 查看本地分支和远程分支;-av查看本地分支和远程分支的详细信息;-avv查看本地分支和远程分支的关联信息
创建分支
基于当前分支创建:git branch 新分支名
基于某个分支创建:git branch 新分支名 分支名
基于远程分支创建:git branch 新分支名 origin/远程分支名
基于一个提交创建:git branch branchForCommit 提交id(git log 查看历史提交)
基于Tag创建:
删除分支:git branch -d 分支名 (多个删除空格隔开)
切换分支:git checkout 分支名
合并分支:git merge
4、远程仓库管理
查看远程仓库:git remote [-v]
添加远程仓库:git remote add 仓库名称 远程仓库地址
删除远程仓库:git remote remove 仓库名称
上传新分支到远程:git push --set-upstream 远程仓库名 分支名
5、tag管理(tag不能修改,和里程碑关联)
查看当前tag:git tag
创建tag:git tag 名称 [基于某个分支/基于某个提交]
删除tag:git tag -d 名称
6、日志管理
查看当前分支下所有提交日志:git log [--oneline(单行显示)]
查看指定分支的提交日志:git log 分支名
比较两个版本的区别:git log 分支名..分支名
以图表形式显示日志:git log --graph
当前改动文件内容详细显示:git show
1、git存储对象
git是一个内容寻址文件系统,其核心部分是一个简单的键值对数据库,向数据库插入任意内容,它会返回一个用于取回该值的hash键。【git add时生成,存储在.git/objects文件夹中】blob对象,key->文件内容
2、git树对象
git commit 时生成,存储最后一次提交文件的key和文件名、及文件夹树对象【链表】tree对象,每次更新树对象,上面节点都会变,后面节点不会变
3、commit对象
当前更改的快照,包含tree对象、parent、author 作者、committer 提交者、提交时注释
git cat-file -t ID号 查看类型
git cat-file -p ID号 查看内容
find .git/objects -type f 进行查看object对象的创建情况