Git 分布式版本控制系统 - 笔记

基础知识:

  1. Vim 编辑器知识

一、Git 安装教程:

Git 详细安装教程(详解 Git 安装过程的每一个步骤)

二、Git 详解笔记

Git 的架构

Git 本地仓库分三部分,其正常工作顺序也是从左到右。

工作区 >>> 暂存区 (stage / index ) >>> 仓库

工作区:指的是在当前 Git Bash 命令行终端的显示项目文件夹;

暂存区(stage / index) :指的是执行了 git add 命令后,文件的提交存放区域;

仓库:指的是在执行 git commit 命令后,文件从暂存区转交到仓库,这个最终的本地仓库存放区域

特别特别注意:HEAD 指针,是仓库才有的,工作区和暂存区是没有的。

前面提到了,为什么说是本地仓库,在这里,还要提一下,版本控制系统是要有着联网的要求的,这是为了链接到远程的仓库,还有有些版本控制系统的联网很慢,很让人火大,所以联网其实有时候不是那么的让人感觉舒服,当然 Git 现在被用来当做常规化的版本控制系统,是不能和其他的版本控制系统相提并论的,它更优秀好用,Git 支持本地的版本控制,也就是说它能将东西放在远程的仓库,也能放在本地的仓库。

modified的文件add到暂存区的是修改而非整个文件,而commit是把暂存区存储的修改提交到分支上而已。应该是这样的,这一句话及其重要。

关于分布式的理解,在每个本地的仓库都存储完整的项目版本控制数据,就算其他的计算机内的项目版本崩溃了,也没事,从其他完好的计算机中复制过来就行了。

Git 基本命令详解

git status 状态命令

git status 查看当前分支情况,如暂存区情况,和文件修改情况;

git add 添加暂存区命令

git add 添加项目文件(工作区),到暂存区,稳住,不要直接 git commit

git commit -m “message” 提交仓库命令

git commit -m "message" 这是必须要的加上 -m 参数,后面是对提交文件的描述,否则你也别提交到仓库了,丢不起人。

比较差异命令

git diff 工作区 diff 暂存区

git diff filename 查看工作区和暂存区的差异

git diff HEAD – 文件名 工作区与仓库文件版本比较命令

git diff HEAD -- 文件名 查看工作区修改后的文件和仓库区提交后的文件版本差异,

git diff --cached 暂存区 diff 仓库

git diff --cached 查看暂存区和仓库差异

暂存区回退命令

git add的反向命令git checkout

git add的反向命令git checkout,撤销工作区修改,即把暂存区最新版本转移到工作区,其实就是撤销,回退 rollback暂存区的版本替换掉工作区的版本。

仓库回退命令

git log

查看提交的 id 号,每次提交都会有一个独一无二的 id 号,对于同一个项目版本控制来说。

git reset --hard HEAD

git reset --hard HEAD^ 回退上一个版本,即从仓库里拿回上次提交的项目旧版本,然后替换掉工作区内的项目版本,还有暂存区内之前 git add 过的项目更改文件,也会被 reset ,也就是消失了,除非通过

add过的可以找回来,add的时候会把文件内容保存为blob对象存入到.git/objects目录下。
git cat-file --batch-check --batch-all-objects | grep blob可以列出所有blob,譬如"ce013625030ba8dba906f756967f9e9ca394464a blob 6"。通过git show ce013625030ba8dba906f756967f9e9ca394464a可以打印其内容。可以通过遍历这些blob找到被reset掉的版本。如果没有git gc过,可以先用ls -l .git/objects根据时间筛选下最可能的blob,以缩小检查范围。

这里先埋个坑,没试过。

git reset --hard HEAD^^ 是回退上上一个版本,所以上上上一个版本,同理可得。

不过为了应对这一情况,一般采用 git reset --hard HEAD~100 ,波浪号~100代表100个过去版本。

git reset --hard 提交id

git reset --hard 1004a 这个是指按提交id 来锁定回退版本,从仓库里拿回过去的版本替换掉工作区的版本。

reset到之前commit.工作区就会与分支合并,相同文件被分支覆盖,删掉的被新增进来,至于你新增的文件当然还在

git reflog 找回提交 id 命令

同 git log 差不多,不过是找回过去的提交id,每次终端关闭了,就需要用到这个命令。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值