GIT基础

本文详细介绍了Git的基本操作,包括下载Git、初始化仓库、添加文件、查看版本历史、管理分支以及理解Git内部对象。通过实例演示了如何给文件重命名、使用`gitlog`查看历史、创建与切换分支,并解析了`.git`目录结构,展示了commit、tree、blob三者之间的关系。同时,文章提到了detached HEAD状态及其风险,强调了分支管理的重要性。
摘要由CSDN通过智能技术生成

git下载

​ git下载地址:

https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git

​ 判断git是否安装成功,在终端中输入:

git --version

​ 结果:image-20210707141033599

​ 下载完后配置user信息

git config --global user.name 'xxxx'
git config --global user.email 'xxxx@xxx.xxx'

建Git仓库

YxinMiracle@LAPTOP-Q5D8JP8P D:\learnGit\gitrunner
$ git init git_running
Initialized empty Git repository in D:/learnGit/gitrunner/git_running/.git/

git add 定时任务.md

$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   "\345\256\232\346\227\266\344\273\273\345\212\241.md"
        
$ git commit -m"ADD readme"
[master (root-commit) bc778c7] ADD readme
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 "\345\256\232\346\227\266\344\273\273\345\212\241.md"

工作区以及暂存区

image-20210707164628441

如果想要复原(暂存区的东西都清除),可以使用命令:

git reset --hard

给文件重命名

git mv xxx xxx

# 不需要添加到暂存区,之后直接commit即可

使用git log查看版本演变历史

*查看本地有多少分支

$ git branch -v
* master 0025cda add refer

*创建分支

git checkout -b branch_name xxxxxxxx(基于哪一个commit)

image-20210708114759367

image-20210708114733508

*可视化查看

git log --all --graph

image-20210708131015974

*切换分支

git checkout branch_name

image-20210708131425651

oneline (简介查看)

git log --oneline

image-20210707165539480

指定最近的commit

git log -nx --oneline

image-20210707165702654

查看不同分支(xxx指的是分支)

git log --oneline xxx

图形化查看

git log --oneline --graph

查看全部分支

git log --oneline --all

.git裸仓库

​ 查看一下这个文件夹中都有些什么:

image-20210708111126501

HEAD

​ 我们查看一下HEAD文件内的内容,这个文件的内容所展示的是我们当前工作在哪一个分支上:

image-20210708131619487

Config

​ 存放一些跟仓库相关的一些配置文件

image-20210708131904698

Refs

​ 存放一些引用(tags 标签/里程碑),heads(分支)

​ 其中heads这个分支,指向的是一个commit,查看一下heads文件夹中的内容:

image-20210708132451321

​ 可以看出都是我们的分支名,我们可以查看一下master这个文件中的内容,查看一下这个的类型,可以发现是一个commit类型:

image-20210708132713837

​ 接下来的tags文件夹就是放着一些标签,我们可以先输入,打开可视化界面

getk

​ 创建一个tag:

image-20210708133426961

​ 创建后:

image-20210708132912234

​ 查看一下tags文件夹内的内容:

image-20210708133407813

Objects

​ objects里面是:

image-20210708133631874

我们随便进入一个文件夹中,如f5,并且查看一下该文件夹中的内容:

image-20210708134312227

​ 这个文件夹对应着一个哈希值,我们将文件夹的名字对这个值拼接,看见是一个commit类型,这个commit中包含了:

image-20210708134425203

  • tree 这相当于是一个文件夹

    我们查看一下这个文件夹中的内容:

image-20210708134516623

  • blob

发现里面有个blob类型的文件,这个就是我们平常说的文件,可以查看这个文件的内容:

image-20210708134601328

​ 就是我们的html文件

commit、tree、blob三个对象的联系

​ 一个commit对应着一个tree,只有一个,也就是一个文件夹

image-20210708135013473

​ 其中,blob与文件名无关,只根据文件内容有关系。

image-20210708135406552

分离头指针(detached HEAD)

​ 分离头指针没有跟任何分支进行挂钩,任何commit都没有被保存。

​ 案例:

​ 修改了css文件中的内容,然后进行commit,可以发现我们的HEAD并没有指向任何的分支

image-20210708135953248

​ 此时我们接到一个任务,需要去master分支去修改bug:

image-20210708140101261

​ 这个时候git会给我们警告,提醒我们要不要为我们的58168ea建立一个新的branch,我们可以打开可视化界面看一下有没有Modify css file这个commit

​ 使用命令:

gitk --all

image-20210708140303404

​ 发现并没有,说明在git的眼里,我们并没有将这个commit与任何的分支绑在一起,这种commit是不重要的,日后会被清除的。

​ 假如这个时候我们发现了这个问题,并且创建了一个新的分支:

image-20210708140512437

​ 再来看看:

image-20210708140532806

​ 发现这条分支就出现了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值