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。

相关推荐
高山莫衣2 小时前
git rebase多次触发冲突
大数据·git·elasticsearch
码农藏经阁2 小时前
工作中常用的Git操作命令(一)
git
kobe_OKOK_3 小时前
【团队开发】git 操作流程
git·elasticsearch·团队开发
码农垦荒笔记3 小时前
Git 安装闭坑指南(仅 Windows 环境)
windows·git
CC码码13 小时前
管理你的多个 Git 密钥(多平台多账号)
git·gitlab·github
CC码码13 小时前
管理你的多个 Git 密钥(单平台多账号)
git·gitlab·github
大卫小东(Sheldon)13 小时前
GIM 1.5发布了! 支持Windows系统了
git·ai·rust
flying jiang13 小时前
将大仓库拆分为多个小仓库
git
李boyang10 天前
Git(四):远程操作
git
荻野泽溪10 天前
Git新建分支并同步到远程
git