Git系列(一)本地GIt仓库(添加,提交)

Git是一个开源的分布式版本控制系统,用于跟踪文件的修改。学习Git主要关注常用命令,如`gitinit`,`gitadd`,`gitcommit`。文章介绍了工作区、暂存区和版本库的概念,并强调了SHA-1Hash在保证数据完整性和唯一性中的作用。
摘要由CSDN通过智能技术生成

学习Git的目标

GIt的底层原理不用深究,比如:哈希算法之类的。
不必要学完所有的命令,学常用的命令,不常用的命令需要用的时候在查,如果贪多,会导致一辈子都学不完。

Git的简单介绍

Git是一个开源的分布式版本控制系统,大概知道GIt会记录每次修改文件的改动,还可以让多人同时编辑,最后将每个人做的修改版本整理在一块的版本控制器。

Git下载安装

Git 各平台安装包下载地址:git下载地址,选择64位window版本比如MinGit-2.40.0-64-bit,版本看情况决定,不是一定要2.4版本,其他版本也行。

linux系统下载Git:sudo apt install git

Git的三个分区

三个分区的介绍

工作区(Working Directory)

存放代码项目和其他文件的区域,使用 git init 之后,包含.git文件夹的上一级目录就是工作区,这个例子中a是工作区,如下图所示
目录a为工作区

暂存区(Stage/index)

暂存区的产生(Stage/index):

临时保存修改的区域,使用命令 “git add ” 的作用是把文件加入暂存区。
第一次使用git add “.git目录” 下会创建名为一个的index文件,每一次添加文件加入暂存区(git add ")成功时,index文件都会更新。
所以暂存区(Stage)有时也叫作索引(index)。

没用过一次git add , .git中没有index文件,添加文件成功后 ,.git中的内容如下图所示
没用过一次git add
时间为2023/4/23 14:43,第一次用git add file, .git中创建了index文件, .git中的内容如下图所示
第一次用git add
第二次使用 git add file命令,添加新文件成功之后,index更新了,修改日期变为 2023/4/23 ** 17:05**,之前为16:25,如下图所示
第二次使用 git add file命令

SHA1- Hash值

在git中SHA-1Hash值是某一个文件的当前版本号(commit ID),文件的SHA-1Hash值就像人的指纹,是文件的数字指纹,是唯一的。
SHA-1Hash值可以保证数据是完整的,没有修改过,回退到过去的版本号(commit ID)时,现在的文件内容和过去的文件内容一模一样。

在Git中,版本号(如30aff5d8364d26285a63df2f0b643aaa2c9ea6a4)为SHA-1 Hash值。
Linux kernel开创者和Git的开发者——Linus说,Git使用了SHA-1并非是为了安全性,而是为了数据的完整性;
它可以保证,在很多年后,你重新checkout某个commit时,一定是它多年前的当时的状态,完全一摸一样,完全值得信任。
版本号为SHA1- Hash值

index(索引)

暂存区文件的内容并没有保存在index,index 里面包含的只是暂存区文件的目录树。
目录树中,记录了文件名、文件的最后修改时间、文件长度、文件类型以及最重要的SHA-1值。
文件的内容是存储在 “.git目录” 下的objects文件(.git/objects)中,它存储着当前项目文件各个版本的代码。

查看index文件夹

在window中.git是一个隐藏文件,要设置才可查看到文件内容。
win11系统:
依次点击:查看 ------> 显示 ------> 隐藏项目 -----> .git -------> index文件
Linux:
依次敲命令:cd <本地仓库路径> ------> ls -al ------> cd .git ------> ls -al -------> cat index文件(看到的是乱码)

版本库(commit History)

在使用git init 后,创建的 .git目录为版本库,版本库(.git目录)中存储了不同版本的代码、日志和文件版本信息等。
.git目录为版本库

新建本地Git仓库中完成基本操作

配置用户名和邮箱

git config --global user.name <your name> # 配置你的用户名
git config --global user.email <email@example.com> # 配置你的邮箱
git config --list # 查看配置信息

新建本地仓库

windows操作系统,新建一个文件夹,不妨命名为 Local_Warehouse , 点击右键,选择 Git Bash Here 打开这个文件夹 git init # 初始化 Local_Warehouse,使它成为一个本地Git仓库
新建本地Git仓库 Local_Warehouse

将文件添加(add)到暂存区(Stage)

git add . # 将当前目录下,所有可添加的文件添加到暂存区,一部分文件不可添加,以后会讲的
git add file # 将当前目录下,file添加到暂存区,前提是file可以添加暂存区
初始化仓库并添加file到暂存区
git add -u #所有被已追踪文件中被修改过或被删除文件的信息添加到索引库,它不会处理不可追踪文件和过去不在暂存区的文件。
git add -u 不会处理过去不在暂存区的文件

将文件提交(commit)到版本库(commit History)

git commit file -m " first commit " # 将文件file 提交(commit)到版本库(commit History),并写注释

git commit -m " commit " #将所有暂存区文件提交到版本库, 并写注释

git commit -am "commit abc " #提交处于已跟踪(tracked),但未暂存状态(unstaged)的文件,并写注释

git commit -am 合成了下面2个命令
git add -u #所有被已追踪文件中被修改过或被删除文件的信息添加到索引库,它不会处理不可追踪文件和过去不在暂存区的文件。
git commit -m “commit” #将所有暂存区文件提交到版本库, 并写注释

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值