【Git】详解本地仓库的创建、配置以及工作区、暂存区、版本库的认识

一、创建本地仓库

需要将本地仓库放在一个目录下,所以在创建本地仓库之前,应该先创建一个目录,再进入这个目录:

在这个目录中创建一个本地仓库:

复制代码
git init

创建完成后,我们就会发现当前目录下多了一个.git的隐藏文件:

这样就表示本地仓库已经创建完成了。

二、本地仓库的配置

本地仓库创建以后要为其设置用户名和邮箱:

bash 复制代码
git config user.name "用户名"
git config user.email "邮箱"

如果加上--global选项表示设置的用户名或邮箱会在所有的本地仓库中生效:

bash 复制代码
git config --global user.name "用户名"
git config --global user.email "邮箱"

如果要取消设置的用户名或邮箱,直接加上--unset选项即可:

bash 复制代码
git config --unset user.name "用户名"
git config --unset user.email "邮箱"
git config --global --unset user.name "用户名"
git config --global --unset user.email "邮箱"

git config -l:可以用来查看当前git的配置列表。

三、工作区、暂存区、版本库的认识

我们不能直接修改.git目录下的内容。.git就叫做本地仓库,也叫做版本库,我们要修改只能在创建了本地仓库的这个目录中增删文件,我们把这个目录叫做本地仓库的工作区。

在上图中, stage叫做暂存区或者是索引**。我们日常所做的add操作就会将工作区中修改(新增,修改,删除)的内容保存到暂存区中,我们日常所做的commit操作就是将暂存区中的内容添加到master分支中,经过第二步commit操作我们才能说我们已经将工作区中修改的内容放在了版本库中,经过add和commit两步后我们才能让git来管理修改的内容。**

在版本库中,其实还有一个叫对象库的东西,修改的工作区的内容会写入对象库的一个新的git对象中,每add一次对象库就会存放一次修改的内容的对象, 保存了每一次修改的内容其实就做到了版本的管理**。暂存区中其实保存的就不是一个个的对象了而是对象的索引,所以暂存区是比较轻量级的,从而我们也可以知道,master分支中其实存放的也是对象的索引。**

从上面的.git的树状图中我们也可以看到,有HEAD指针,对象库(objects)。

相关推荐
Rain的Java大神之路几秒前
面试被LeetCode 27(移除元素)问懵?别再用两层 for 循环了:一道“简单题”吃透双指针原地删除,附面试加分话术 + 11 个避坑清单
后端·leetcode·面试
骑着蜗牛撵大象32714 分钟前
手写一个 HTTP 服务器:从 socket 到 epoll,Linux 上到底怎么把请求变成响应
linux·服务器·网络·http·epoll·socket编程·并发模型
程序员初一17 分钟前
我在 1C1G 的服务器上装了个桌面环境,然后用 VNC 连它,然后我后悔了
linux·ssh
利威尔xu27 分钟前
Go IM 源码实战(11):token 只是个 HASH,多端互踢的顺序错了就踢错人
后端·微服务·面试·架构·golang
星恒随风44 分钟前
Linux Socket TCP编程(二):逐文件重构多进程、多线程与线程池服务器,深入fork、pthread_create、popen和std::bind
linux·服务器·笔记·学习·tcp/ip
晚风叙码1 小时前
Linux 进程概念(下):程序地址空间与虚拟内存
linux·服务器·算法
猿究院--Cu-Sn合金1 小时前
Spring Boot + DeepSeek 求职 Agent 实践:工具注册、多轮调用与简历 JD 对比
数据库·人工智能·spring boot·后端·deepseek
程序员cxuan1 小时前
别学 subagent 了,很可能要凉了。
后端·agent·ai编程
小咕聊编程1 小时前
基于Django的个人摄影博客网站设计与开发
后端·python·django
无足鸟ICT1 小时前
【RHCA+】影响Linux系统性能的因素
linux·运维·服务器