news 2026/10/25 1:57:46

Linux 开发工具(六) 版本管理器git的简单使用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux 开发工具(六) 版本管理器git的简单使用

目录

一. 简单认识一下 git

1.1 本地仓库和远端仓库

1.2 去中心化、分布式的版本控制

二. git 实操

2.1 git 的创建仓库

2.2 拉取远端的仓库到本地仓库

2.2.1 .git

2.2.2 代码版本的修改

2.3 在本地仓库添加新的文件

2.3.1 工作区和本地仓库

2.3.2 添加文件(续)

2.3.2.1 git add 和暂存区

2.3.2.2 git status

2.3.2.3 git commit -m 和 git log

2.4 推向远端仓库

2.4.2 git push

三. git的细节补充

3.1 git 的命令行安装

3.2 第一次使用git

3.3 .gitignore

3.4 多用户使用远端仓库

3.4.1 git pull


一. 简单认识一下 git

1.1 本地仓库和远端仓库

Git 通过本地仓库和远程仓库实现代码的版本管理与共享。开发者可以在本地独立管理代码及其历史版本,也可以借助 GitHub、Gitee 等平台同步代码,方便团队成员进行多人协作开发。

1.2 去中心化、分布式的版本控制

Git 是一个分布式版本控制工具,每个开发者都可以通过本地仓库独立管理代码版本。开发者之间既可以通过 GitHub、Gitee 等平台上的远程仓库同步代码,也可以直接从对方的 Git 仓库获取代码。因此,Git 不依赖中央服务器也能进行版本管理和代码共享。

二. git 实操

2.1 git 的创建仓库

2.2 拉取远端的仓库到本地仓库

git clone https://gitee.com/zspnslzx/test-will-be-deleted.git #这条命令的作用是:将 Gitee 上的远程 Git 仓库克隆到自己的本地电脑中。 当前目录/ └── test-will-be-deleted/ ├── .git/ ← 本地 Git 仓库,保存版本管理信息 ├── README.md ← 项目文件 └── ...

2.2.1 .git

打开拉取下来的远端仓库,我们会发现里面有一个隐藏目录.git,严格来说这才是真正的本地仓库。

我们会发现.git下有很多信息,这些都是什么呢:

.git/ ├── objects/ ← 保存 Git 对象,包括提交、文件内容等 ├── refs/ ← 保存分支、标签等引用信息 ├── HEAD ← 记录当前检出的分支或提交 ├── index ← 暂存区信息 ├── config ← 仓库配置信息 └── ...

总结一下:.git主要保存 Git 已经记录的代码版本、提交历史、分支、暂存区及配置信息,是 Git 实现版本管理的核心。

2.2.2 代码版本的修改

我们之前对代码版本修改的理解是:我先保存好版本A,再到版本A的基础上修改成版本B再保存。但是实际上并不是这样。

git 只会提交我们修改的部分,打个比方我修改了第100行代码,他只会记录第100行代码被修改,而不是把整个源码都记了下来,一般记录到objects目录下

2.3 在本地仓库添加新的文件

如图:我在拉取的仓库下添加了一个文件 test.cpp,那么这个文件有没有被本地仓库管理呢?

2.3.1 工作区和本地仓库

在回答上面的问题之前,我们先来认识一下两个概念:工作区和本地仓库:

  • 本地仓库:这个我们之前提到过,拉取目录下的隐藏目录.git才是真正的本地仓库。
  • 工作区:指我们克隆到本地的项目目录中,用于存放和修改项目文件的区域,不包括.git目录本身

2.3.2 添加文件(续)

2.3.2.1 git add 和暂存区

回到上面的问题,答案是并没有被本地仓库管理,我们还需要一系列操作才行。

git add test.cpp

#git add:将工作区中指定文件的修改添加到暂存区,为提交做准备。

但是要注意的是 git add 也只是将文件存入暂存区,这一步还没有放入本地仓库,我们还需要git addmit

2.3.2.2 git status
git status

git status 用于查看当前 Git 仓库的状态,了解工作区和暂存区中文件的变化情况。

git status 查看文件时,常见的有以下几种状态:

状态

含义

Untracked(未跟踪)

新创建的文件,还没有被 Git 跟踪

Unmodified(未修改)

文件已被 Git 跟踪,但没有发生变化

Modified(已修改)

已跟踪的文件发生了修改,但修改尚未暂存

Staged(已暂存)

文件的变化已经通过git add添加到暂存区

2.3.2.3 git commit -m 和 git log
git commit -m "有效信息"

#git commit -m:将暂存区中的内容提交到本地仓库,形成一个新的历史版本,
#其中 -m 用于指定本次提交的说明信息。

为什么推荐git commit带上选项 -m,并且信息必须是有效的:

Git 的提交记录会保存在版本历史中,其他人克隆包含这些提交的仓库后,也能通过git log查看。因此,每次提交都应该认真填写提交说明。

git log

#用于查看 Git 本地仓库的历史提交记录,包括每次提交的提交编号、提交者、提交时间和提交说明等信息。

2.4 推向远端仓库

2.4.2 git push

git push

#用于将本地仓库中的提交记录推送到远程仓库(如 Gitee、GitHub),实现代码和版本历史的同步。

输入gitee的账号密码即可完成向远端仓库的推送,我们也可以验证一下:

三. git的细节补充

3.1 git 的命令行安装

之前讲包管理器的时候,我们提到过怎么安装软件,这里就不在多说

ubuuntu环境: sudo apt install -y git centos环境: sudo yum install -y git

3.2 第一次使用git

我们第一次使用git时,往往会提醒我们输入用户名和邮箱:

Git 首次配置用户名和邮箱,本质上是为当前用户设置默认的代码提交者信息。Git 会保存这些信息,后续提交时直接读取。如果切换 Linux 用户,新用户通常需要配置自己的信息。

3.3 .gitignore

一般来说,git版本管理只管理源文件,并不包括各种临时文件。

git本身也提供一种文件忽略机制,用于指定哪些文件或目录不需要被 git 管理。就是项目目录下的 .gitignore文件。

我们也可以用vim访问一下.gitignore

我们也可以验证一下:我先创建了一个test.apk文件再用 git add 添加到暂存区,会发现结果失败了

3.4 多用户使用远端仓库

现实生活中可能会有多个用户使用同一个库,那么冲突就不可比避免。

假设用户 A 和 B 共同使用一个远端仓库,A 修改了test1.cpp并成功推送到远端仓库,B 修改了test2.cpp并提交到本地仓库。此时 B 执行git push,由于远端仓库已经有了 A 的新提交,而 B 的本地仓库没有这些提交,因此 B 的推送会被拒绝,需要先通过git pull获取并整合远端最新代码,再重新推送。

3.4.1 git pull

git pull

#用于从远端仓库获取最新的代码和提交记录,并将其整合到当前本地分支中。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/25 1:57:46

Python变量的基础类型

在学习编程语言的过程之中, 人们常常无法不去掉对变量这个概念的关注。所谓的变量, 它是用来给数据起名字的这样一种存在。你能够把具体的数值赋值到变量上面, 然后你可以在程序的其他各个地方去使用这个变量, 从而来引用之前已经赋值的那个具体数值。总而言之, 变量在整个程序…

作者头像 李华
网站建设 2026/10/25 1:57:14

大小端自我学习理解

大小端学习理解 1.什么是大小端 简单来说: 大端:高位字节放在低地址 小端:低位字节放在低地址 例如: 0x12345678 拆开是四个字12,34,56,78 放在大端小端的地址中:地址0x10000x10010x…

作者头像 李华
网站建设 2026/10/25 1:56:43

回顾自己2年的博客,发现了流量的真相

起因写博客两年了,发了 21 篇原创。前几天,我把文章重新整理了一下,发现了一些问题。如果你也在 CSDN 上写东西,希望这些经验能给你一些帮助。数据看着数据感觉还行,其实平均数据的水分还是比较大的。原创文章21篇总阅…

作者头像 李华
网站建设 2026/10/25 1:56:19

解决:使用Burp Suite工具实现防重放攻击的过程及遇到的代理等问题

Ⅰ、Burp Suite实现防重放攻击: 其一、打开Burp Suite工具: a、双击 Start.vbs: b、可以删除之前文件: c、选择临时项目并点击下一个: d、选择使用Burp的默认值并点击进入Burp: e、此时就进入Burp Suite工具了: 其二、获取目标下发报文: a…

作者头像 李华
网站建设 2026/10/25 1:55:36

笔记--浅谈内存,存储空间,BIOS芯片,显卡GPU、VRAM(1)

内存,存储空间,BIOS芯片,显卡---这几者名字各不相同,但是被一个东西串联在一起,那就是G(GB)GB(G)本质就是容量单位,1GB等于1024MB,1MB又等于1024KB,1KB又又等于1024字节(…

作者头像 李华
网站建设 2026/10/25 1:55:30

AI回答监测记录怎么留存:原始文本、来源URL与有效样本

AI回答监测最容易混淆的,是“任务返回成功”和“证据已经完整”。一份记录可能有文字没有截图,也可能有正文截图但没有来源链接;列表展示了品牌相关文章,也不代表正文已经采用或推荐品牌。留档时应让这些状态能够分别检查。原始材…

作者头像 李华