Git(一):基本操作 && 三个区

目录

前言

版本控制器

Linux下的Git的安装

Git的基本操作

创建Git本地仓库

配置Git

工作区、暂存区、版本库

添加与提交

查看.git文件


前言

我们可能要写多个文档对一个产品进行描述,但是一般情况下我们可能要写多个文档,比如:

  • 初始文档(版本1)
  • 修改文档1(版本2)
  • 文档max(版本3)
  • 文档promax(版本4)
  • ......

问题:随着版本数量的不断增多,可能会忘记对每个版本的进行修改的内容,文档如此,我们所写的项目代码也是有这样的问题存在的

版本控制器

基本概念:目前最主流的版本控制器就是Git,Git可以控制电脑上所有格式的文件,如:doc、excel、dwg、dgn、rvt等等,对开发人员来讲,Git最重要的就是可以帮助我们管理软件开发项目中的源代码文件

功能:可以记录工程的每一次改动和版本迭代的一个管理系统,同时也方便多人协同作业

注意事项:所有的版本控制器,只能跟踪文本文件的改动(TXT文件、网页、所有的程序代码等)它可以告诉你每次的改动内容(比如在第8行新增了一个单词“Linux”,在第10行删除了一个单词“Windows”)而图片、视频等二进制文件,虽然也能由版本控制器控制,但是无法跟踪文件的变化,只能把二进制文件每次的改动串起来(仅知道图片从100kb大小改成了120kb大小)其余的就不知道了

Linux下的Git的安装

安装指令:sudo yum install git -y

版本查询指令:git --version

卸载指令:sudo yum remove git -y

Windows下Git的安装:安装git和图形化界面工具_哔哩哔哩_bilibili

Git的基本操作

创建Git本地仓库

基本概念:git的本地仓库是进行版本控制的一个文件目录,对文件进行版本控制一定要创建它

创建指令:git init

注意事项:

1、git本地仓库要在一个空目录中创建

2、git本地仓库是一个隐藏文件

3、.git文件是Git用来跟踪和管理仓库的,不要修改这一文件

4、gitcode不是本地git仓库,.git才是

配置Git

配置用户名称的指令:git config [--global] user.name "自定义名称"

配置e-mail地址的指令:git config [--global] user.email "自定义邮箱地址"

删除配置指令:git config --unser user.(name、email等)

列出当前Git仓库的配置项:git config -l

注意事项:

1、一个服务器中可以创建多个本地仓库

2、--global指令会使得本地服务器中所有的Git仓库都会使用当前的配置内容,如果希望在不同仓库中使用不同的name或email可以不要该选项

3、执行对Git仓库的命令时必须在该仓库所在的目录下

4、在全局范围内充值配置指令

  • git config --global --upset user.(name、email等等)

工作区、暂存区、版本库

工作区:电脑上要写代码或文件的目录(gitcode是工作区)

暂存区(索引):一般存放在.git目录下的index文件中(.git / index),git add后的文件会被添加至此(但不会显示)

版本库(仓库):工作区的隐藏文件.git不工作区而是Git的版本库,该库中的所有文件都可以被Git管理,每个文件的修改、删除、Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来的某个时刻进行“还原”

注意事项:

1、Git版本库中最重要的就是缓存区

2、在创建Git版本库时,Git会自动创建一个唯一的master,及指向master的指针HEAD

git add 目录路径

3、对工作区的文件执行git add时,暂存区会更新

4、执行git commit时,暂存区的内容会被真正的写到版本库中,master同时也更新

5、stage和maseter中存放的是索引,真正的文件位于object库中

6、HEAD是指向master的指针,master中存放最新一次提交的文件的id

7、新建或粘贴进.git所在目录的文件,并不能称之为向仓库中新增文件,只是在工作区新增了文件,必须要通过git add和git commit命令才能将文件添加到仓库中进行管理

8、每个id对应一个Git对象,该对象放在object库中,利用id可以找到objec库中的对象

9、id = 所处文件夹名称“前两位” + 文件名“后三十八位”

添加与提交

添加指令:git add 文件名 (将指定文件添加)

提交指令:git commit  "对修改文件的描述(这个文件干了什么事)"

查看提交记录指令:git log [--pretty = oneline]

注意事项:
1、可以一次添加一个或多个文件到暂存区

git add 文件名1 文件名2 ...

2、添加指定目录到缓存区,包括子目录

git add 目录路径

3、添加当前目录下的所有文件改动到缓存区

git add .

4、提交暂存区的全部内容到master(实际上这时才算进入版本库)

git commit -m "message"

5、提交暂存区的指定文件到master(实际上这时才算进入版本库)

git commit 文件名1 文件名2 ... -m "message"

6、-m后必须跟"message",message由用户自行填写,且绝不能省略,要好好描述,它是用来记录提交细节的,是给用户看的

git commit -m "add my first file"

7、git log 查看从近及远的提交记录,且能看到我们"message"中的内容

8、如果嫌弃输出信息太多,可以尝试加上--pretty = oneline,将这些消息在一行显示

9、 id(版本号)是一个SHA1(散列算法1)计算出来的一个非常大的数字,用十六进制表示 

查看.git文件

查看git树指令:tree .git

查看对象指令:git cat-file -p id

  1. git log查看提交记录,找到某一批次提交的id(commit id)
  2. git cat-file -p id查看该批次提交的相关内容

  • parent:上一批次提交的id
  • author:文件创建者
  • committer:文件提交者
  • tree(tree id):存放该批提交的文件的所有文件的id(blob id)

对tree id进行cat-file -p可以得到该批次所有修改的文件的blob id

这些id都可以在.git的tree中找到(为什么file123文件的id相同我也不知道)

再次使用git cat-file -p id可以查看这些文件中的真正的内容:

结论:git log查看的是每一批内容提交时所给的id(特指commit id),每一批中可能有很多内容这些内容又有自己对应的id(特指blob id)git cat-file -p 查看commit id得到一个tree id,查看tree id得到多个blob id,查看blob id得到具体内容

~~~~~~git log 得到 commit id~~~~~~

~~~~~~git cat-file -p commit id 得到 tree id~~~~~~

~~~~~~git cat-file -p tree id 得到 blob id~~~~~~

~over~

  • 20
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值