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。

相关推荐
创实信息4 小时前
GitHub企业版:AWS CodeCommit迁移的最佳路径与技术优势
git·ci/cd·github·aws·github企业版·aws codecommit
Cachel wood7 小时前
Vue.js前端框架教程11:Vue监听器watch和watchEffect
前端·javascript·vue.js·git·ui·前端框架·ecmascript
海绵宝龙8 小时前
git stash 的文件如何找回
git
Zhu_S W10 小时前
常用git命令大全
git
XWXnb617 小时前
Git使用步骤
git
YG·玉方17 小时前
GIT命令使用手册(详细&实用版)
git
八月五1 天前
Git连接远程仓库(超详细)
git
工会代表1 天前
git忽略大小写的问题,以及远程仓库同时存在大小写不同的文件的解决方案
git