git的使用及其原理

embedded/2024/12/26 12:01:04/

目录

git-toc" style="margin-left:0px;">1.什么是git

git%E7%9A%84%E5%9F%BA%E6%9C%AC%E6%93%8D%E4%BD%9C-toc" style="margin-left:0px;">2.git的基本操作

2.1初始化本地仓库

git-toc" style="margin-left:40px;">2.2配置git

3.认识工作区/暂存区/版本库之间的关系

git%20log-toc" style="margin-left:0px;">4.git log

​编辑5.修改文件

git%E6%96%87%E4%BB%B6-toc" style="margin-left:0px;">6.查看git文件

7.版本回退

8.撤销修改

9.删除文件


git">1.什么是git

git是一个版本控制器git会记录每次对文件的改动。

git%E7%9A%84%E5%9F%BA%E6%9C%AC%E6%93%8D%E4%BD%9C">2.git的基本操作

2.1初始化本地仓库

创建一个文件夹,进入文件夹之后执行命令git init 

 执行完,使用ls -a命令查看隐藏文件,有一个.git文件说明初始化成功。

git">2.2配置git

使用git config 命令配置git

我们首先要配置的就是 name email ,如果少了这两个配置,向远程仓库提交的时候就会报错。

git config user.name "你的远程仓库的用户名"。

git config user.email "你的远程仓库的email"。

配置好之后 使用 git config -l 查看配置文件

也可以在配置的时候加上--globla 选项,这样是就全局配置,只要创建仓库,就不用重新配置。

git config --global user.name "wys"

注意:配置的时候加上--globla 选项,那么在取消配置的时候也需要加上--globla选项。

git config --global --unset user.name 这样就删除了 user.name的配置

3.认识工作区/暂存区/版本库之间的关系

工作区:我们进程开发操作的区域。

暂存区:存储指向git对象的索引。

使用git add [filename] [filename] [filename].......命令即可更新暂存区的目录树。 

或者使用git add . 提交当前目录所有的文件

使用git status查看暂存区的状态。

有改变未提交:新的文件名 叫 testgit

再使用git commit -m "本次提交的细节" 命令提交到master分支。

一个文件发生了改变,新增1行。

git%20log">4.git log

目前为止我们已将代码提交到本地的仓库了。

我们可以使用 git log命令查看我们提交的日志。

也可以使用 --pretty=online选项,更美观的查看日志。

 这前面的一大串字符串是我们提交的版本号。

我们也可以多提交几个文件看看。

再查看日志


5.修改文件

git追踪的是文件的修改,而不是文件本身,他会记录下,哪个文件的哪一行被修改了。

我们堆testgit文件新增一行。

使用 git status命令。

工作去已经有文件被修改了,但是还没有被添加到暂存区。

还可以使用git diff [filename]命令,查看工作区和暂存区文件内容的不同。

这是unix通用的diff格式

a/代表修改前的文件名 b/代表修改后的文件名。

--- a/testgit 表示修改前文件的路径。

--- b/testgit 表示修改后文件的路径。

-1代表修改之前的行数是1。

+1,2 代表从1开始 到2结束这一行是新增的。

git%E6%96%87%E4%BB%B6">6.查看git文件

1.查看当前最新的版本的版本号

cat .git/refs/heads/master

 这大串数字的前两位是文件夹的名称,后面的是文件的名字。

使用 git cat-file -p [版本号] 查看 当前版本。

我们可以更新一下版本,在查看一下。

 

7.版本回退

使用git reset命令进行版本回退。

git reset [--soft | --mixed | --hard] [HEAD]

--mixed 为默认选项,使⽤时可以不⽤带该参数。该参数将暂存区的内容退回为指定提交版本内
容,⼯作区⽂件保持不变.

--soft 参数对于⼯作区和暂存区的内容都不变,只是将版本库回退到某个指定版本.

--hard 参数将暂存区与⼯作区都退回到指定版本。切记⼯作区有未提交的代码时不要⽤这个命
令,因为⼯作区会回滚,你没有提交的代码就再也找不回了,所以使⽤该参数前⼀定要慎重。

版本回退的原理

HEAD指针是指向当前版本,只需要将HEAD指针向后移动,就可以完成回退。

8.撤销修改

情况1:工作区的代码没有add,但没有commit

写代码的时候越写发现自己写的越狗屎,想回退到上版本,如果你写的代码很少那是无所谓,但是你已经开发很久了,你也记不清从哪里开始了。

是用git checkout -- [file] 命令,可以让工作区回退到上次 add或者 commit的版本。

情况2:工作区的代码已经被add

这时候可以使用,git reset --mixed HEAD的命令,这就可以回退暂存区的内容。

情况三:已经add,并且已经commit

这种情况直接使用 git reset --hard HEAD将 工作区,暂存区都回退到当前版本。

注意:这种情况只能是未提交到远端仓库这么做才有用。

9.删除文件

直接使用 git rm [file] 删除。

使用rm直接删除也可以,但别忘记 add 和 commit。


http://www.ppmy.cn/embedded/148550.html

相关文章

序列化和反序列化(二)

为了方便查找和记录,所以将实操和知识点分开,这篇文章就是由浅入深的介绍反序列化的相关题目 [SWPUCTF 2021 新生赛]ez_unserialize 看源码,有提示 发现Disallow(禁止抓取),使用robots.txt协议查看&#x…

关于图片的alpha通道、透明度

三原色光模式又称RGB颜色模型,是一种加色模型,将RGB三原色的色光以不同的比例相加,以产生多种多样的色光。而计算机中更为常见的还有RGBA颜色模型。A 一般称为alpha通道,一些人也称为透明度、不透明度等。 在电脑中,假…

GIS 文件格式 及 常规应用总结

文章目录 GIS 中常见的文件格式 以及 再次打开注意事项资源网站应用地图瓦片数据地形数据倾斜模型 QGS 应用矢量数据格式栅格数据格式数据库格式更改图层样式更改图层范围导出为不同分辨率图片导出矢量文件直接保存图层通过打印布局导出使用插件导出 tiff 图片前端处理方式 GIS…

springboot启动不了 因一个spring-boot-starter-web底下的tomcat-embed-core依赖丢失

这个包丢失了 启动不了 起因是pom中加入了 <tomcat.version></tomcat.version>版本指定&#xff0c;然后idea自动编译后&#xff0c;包丢了&#xff0c;删除这个配置后再也找不回来&#xff0c; 这个包正常在 <dependency><groupId>org.springframe…

【docker】pull 镜像异常

报错信息&#xff1a; docker pull centos Using default tag: latest Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers) 问题&am…

5、栈应用-表达式求值

本章内容使用上述栈结构函数&#xff0c;来完成表达式求值操作。 表达式例如&#xff1a;3*(7-2) 或者 (0-12)*((5-3)*32)/(22) 。 1、实现思路 a、建立OPTR&#xff08;运算符&#xff09;和OPND&#xff08;数字&#xff09;两个栈&#xff0c;后输入字符串以结束 b、自左向…

Codesoft许可证迁移到新计算机的操作步骤

随着科技的不断发展&#xff0c;我们时常需要升级或更换计算机设备以适应更高的工作要求。然而&#xff0c;在迁移至新计算机时&#xff0c;如何确保Codesoft软件的许可证能够顺利转移并继续在新设备上使用&#xff0c;成为许多用户关心的问题。本文将为您详细介绍Codesoft许可…

Redis 初相识:开启缓存世界大门

Redis 概述 什么是 Redis Redis 是一个开源&#xff08;BSD 许可&#xff09;的&#xff0c;内存中的数据结构存储系统&#xff0c;它可以充当数据库、缓存以及消息中间件等多种角色。从数据存储角度来看&#xff0c;它基于内存&#xff0c;通过键值对的方式来存储各种类型的…