git学习

git 流程:

在这里插入图片描述
git基本原理
工作区、暂存区、本地仓库

1、在执行git init 后创建git本地仓库,生成 .get 文件:

 hooks
  info
  logs
  objects
  refs
  .COMMIT_EDITMSG.awp
  COMMIT_EDITMSG
  config
  description
  HEAD
  index
  ORIG_HEAD
  packed-refs

2、执行git add . 之后,会在objects文件中生产文件:
在这里插入图片描述

git cat-file -t a9aae1 查看object文件的类型
git cat-file -p a9aae1 查看object文件中的内容

当在工作区有添加文件或修改文件时,执行git add xxx 后,添加和修改的文件通过压缩后形成快照保存到objects中(通过git cat-file -p a9aae1 查看文件可发现内容为添加和修改文件的完整信息(副本))

objects 中的文件名是通过 对<文件内容+文件类型> 进行hash算法(SHA1)得到,前两位作为第一层目录(a9),剩下的作为第二层的文件名(aae118b1d9…), 所以当工作区的两个文件的文件内容+文件类型相同时,在执行git add . 后在object生成的文件是相同的,因此指向同一个objects文件

hash算法:把任意长度的输入通过散列算法变换成固定长度的输出:
类型: MD5(128bit) 、SHA1(160bit)、SHA25(256bit)、 SHA512(512bit)

echo "文件类型 内容长度\0内容" | shasum   // hash算法得到object文件名
echo “blob 10\0hello git” | shasum

在这里插入图片描述

git ls-files // 查看index文件中的内容(即暂存区的文件目录) 
git ls-files -s // 查看index文件中的详细内容

3、git commit -m “xxx”

回退 git reset

git reset --soft HEAD~1    回退HEAD(本地仓库),index(暂存区)和工作区不变
git reset --mixed HEAD~1   回退HEAD(本地仓库)和index(暂存区),工作区不变
git reset --hard HEAD~1    回退HEAD(本地仓库)、index(暂存区)、工作区
git reset --hard origin/master 将本地的HEAD、index、工作区回退到和远程的master分支(也可以是其他远程分支)一样 

分支管理

git branch   // 查看分支
git branch huzw001 // 创建分支huzw001
git checkout huzw001 // 切换到分支huzw001
git checkout -b huzw001 // 创建分支并切换到huzw001
git branch - d huzw001 // 删除分支huzw001
git merge huzw001 // 将分支huzw001合并到master上

git原理
git对象、blob对象、tree对象、commit对象、tag对象

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值