git的使用及其原理

目录

1.什么是git

2.git的基本操作

2.1初始化本地仓库

2.2配置git

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

[4.git log](#4.git log)

​编辑5.修改文件

6.查看git文件

7.版本回退

8.撤销修改

9.删除文件


1.什么是git

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

2.git的基本操作

2.1初始化本地仓库

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

执行完,使用ls -a命令查看隐藏文件,有一个.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行。

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结束这一行是新增的。

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。

相关推荐
Geek-Chow14 小时前
Git 标签与发布流程:轻量标签、附注标签与签名标签
git·tags
wear工程师14 小时前
Git 冲突怎么解决:别只删标记,先看懂暂存区的 1、2、3 阶段
git
村雨遥14 小时前
覆盖提交不等于删除,这才是彻底清除 Git 历史的正确姿势
git·github
淮北49414 小时前
ubuntu22 默认输入法调整频率
运维·服务器·git·ubuntu·elasticsearch
momo_aa15 小时前
小白下载git步骤
git
dunge202616 小时前
2026 ChatGPT Plus / Pro + Codex 实战:从 0 搭一套 AI 编程项目模板,AGENTS.md + Git + 测试一次配好
人工智能·git·chatgpt
福如意如我心意2 天前
git清除仓库敏感文件并同步至远端的操作
git
Brilliantwxx2 天前
【Linux】 开发|Git 版本控制与 gdb/cgdb 调试
linux·笔记·git
.Hypocritical.3 天前
Git 全套实操|配置 /.gitignore/ 分支合并 / 冲突解决 /git stash 完整教程
git
来日方长。。。。long3 天前
Hermes Agent橙皮书共读|第三篇:保姆级实战部署|本地/VPS从零搭建Hermes
ide·git·hermes