GIT基本概念、核心命令及底层原理

part 01:GIT基本概念与核心命令

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 

 

part 02:GIT底层原理

1、git存储对象

  • git是一个内容寻址文件系统,其核心部分是一个简单的键值对数据库,向数据库插入任意内容,它会返回一个用于取回该值的hash键。【git add时生成,存储在.git/objects文件夹中】blob对象,key->文件内容

2、git树对象

  • git commit 时生成,存储最后一次提交文件的key和文件名、及文件夹树对象【链表】tree对象,每次更新树对象,上面节点都会变,后面节点不会变GIT基本概念、核心命令及底层原理_第1张图片

3、commit对象

  • 当前更改的快照,包含tree对象、parent、author 作者、committer 提交者、提交时注释

  • git cat-file -t ID号  查看类型

  • git cat-file -p ID号  查看内容

  • find .git/objects -type f  进行查看object对象的创建情况

 

 

 

你可能感兴趣的:(JAVA高阶必备技能,git)