git在工作区和本地库的操作命令

 本文介绍一些开发时,常用的在工作区和本地库之间的操作命令

git在工作区和本地库的操作命令_第1张图片


一、提交修改内容到 本地库

工作树的修改内容要提交到本地库,首先需要先添加到缓存区stage,在commit到本地库。

# filename就是你修改后需要提交的文件
git add 

# git commit将缓存区的文件一次性提交到本地库

git commit -m '备注'

二、开发了一段时间,想看看修改了那些文件 以及 和本地库的差异(即修改的内容)

你开发了一段时间,可能已经忘记了修改过那几个文件

可以使用 git status 查看工作区和缓存区的内容,即修改过的文件和新增的文件,

也可以使用 git diff 查看工作区和本地库的版本差异(即内容差异,包括修改和新增,删除)

# 查看工作区和缓存区的状态
git status

# 查看指定文件 在工作区和本地库的差异

git diff 

git在工作区和本地库的操作命令_第2张图片

 三、 修改回滚

git是版本控制系统,那么是支持使用指定版本的文件。

场景1: 修改已经提交到了本地库

step1: git log,查看提交历史,版本的历史 或者 git reflog,查看命令历史,有带每个操作命令在哪个版本上(通常用于回滚之后的版本,即你回滚到从前版本后,想要放弃,回到当前版本之后的版本)

git log

git在工作区和本地库的操作命令_第3张图片

想要精简点的提交历史: 加上 参数 --pretty=oneline

git在工作区和本地库的操作命令_第4张图片

git reflog

git在工作区和本地库的操作命令_第5张图片

step2: 回滚版本

这里分为两种情况

第一种是修改内容已经提交到了本地库。 需要从本地库回滚版本。

第二种是修改内容还未提交到本地库,则需要撤销缓存区和工作区的修改内容

想要回滚大版本

他有三种模式 --soft --mixed(默认的模式) 和 --hard。 改变的内容由少到多

--soft模式:

仅仅改变当前HEAD 指针(当前的版本号),工作区和缓存区修改的内容全部保留(即当前修改的内容也全部还在)。

--mixed模式:

默认的参数, 改变当前的HEAD指针,也改变缓存区的修改内容。但是保留了工作区的内容

--hard模式:

HEAD指针,缓存区和工作区全部改变

 --soft的效果演示

git在工作区和本地库的操作命令_第6张图片

 git在工作区和本地库的操作命令_第7张图片

--mixed效果演示: (放弃缓存区修改内容,保留工作区的修改内容)

git在工作区和本地库的操作命令_第8张图片

 --hard: 效果演示

git在工作区和本地库的操作命令_第9张图片

git在工作区和本地库的操作命令_第10张图片

场景2: 修改未提交到本地库。

则需要回滚两个地方的,一个是缓存区,一个是工作区

1. 放弃缓存区的修改内容:

git reset HEAD 

自己的理解,HEAD代表是最新的版本号, reset就是之前演示的, 默认是--mixed,即更改HEAD值和缓存区内容,保留工作区内容。 (但是--soft和--hard 是没办法和文件搭配使用,只能)

演示:

git在工作区和本地库的操作命令_第11张图片

2. 放弃工作区的修改内容

方法1: git checkout --

git checkout -- : 丢弃工作区的修改内容,回到本地库或者缓存区的状态。

缓存区有修改优先回滚到缓存区状态,缓存区没有,回滚则回到本地库状态

所以前提是这个文件本地库或缓存区必须有,如果没有,则无法生效。

示例: 在本地库或者缓存区没有的情况下, git checkout -- file 撤销工作区的修改效果

验证场景2.1: 本地库没有,缓存区也没有的情况

演示结果: 撤销失败

git在工作区和本地库的操作命令_第12张图片

验证场景2.2:  本地库没有,缓存区有的情况

演示结果: 撤销成功, 回到缓存区的状态

git在工作区和本地库的操作命令_第13张图片

验证场景2.3:  本地库有,缓存区没有的情况

演示结果:撤销成功,撤销后状态和本地库的状态一致

git在工作区和本地库的操作命令_第14张图片

验证场景2.4:  本地库有文件,缓存区也有该文件。工作区修改后,再撤销

演示结果:撤销成功。撤销后的状态和缓存区一致

git在工作区和本地库的操作命令_第15张图片

总结4个场景结论:

git checkout -- file,是优先对比工作区和缓存区的, 如果缓存区没有内容,则对比工作区和本地库的。

所以修改未提交到本地库的回滚,需要两步

git在工作区和本地库的操作命令_第16张图片

方法2: 直接 git reset --hard HEAD

将当前版本的本地所有文件修改内容全部放弃, 包括缓存区和工作区

四、 删除本地库文件

方法1: 当成正常的开发

# step1: 在工作树上删除

rm -f 

# step2: 添加缓存区

git add 

# step3: 提交到本地库

git commit -m

方法2: 直接删除本地库中的文件

git rm 

git commit -m ''

下一步准备总结,在本地库和远程库的操作, 包括本地库和远程库分支的增删改查,以及本地库和远程库的关联创建

git本地库和远程库的相关操作命令_龟速扣代码的博客-CSDN博客

你可能感兴趣的:(git)