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。

相关推荐
叫我少年10 小时前
Windows 中安装 git
git
深海鱼在掘金6 天前
Git 完全指南 —— 第1章:Git 概览与版本控制演进
git
noravinsc6 天前
关于Git Flow
git
蜜獾云6 天前
在Git中配置用户名和密码
git
scx_link7 天前
通过git bash在本地创建分支,并推送到远程仓库中
开发语言·git·bash
南大白7 天前
IntelliJ IDEA 运行时的 JVM 本地内存溢出崩溃
git
码农小旋风7 天前
Claude Code 基础用法大全:对话、分析、修改、测试、Git 和工作流
人工智能·git·chatgpt·claude
南大白7 天前
Git 撤回提交完整方案
git
像风一样的男人@7 天前
python --实现代理服务器
git·ui
sbjdhjd7 天前
从零搭建企业级 CI/CD(下):Jenkins+GitLab+Harbor 全链路实战指南
git·servlet·ci/cd·云原生·云计算·gitlab·jenkins