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

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


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

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

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

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

git commit -m '备注'

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

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

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

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

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

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

git diff <filename>

 三、 修改回滚

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

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

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

git log

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

git reflog

step2: 回滚版本

这里分为两种情况

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

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

想要回滚大版本

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

--soft模式:

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

--mixed模式:

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

--hard模式:

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

 --soft的效果演示

 

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

 --hard: 效果演示

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

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

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

git reset HEAD <file>

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

演示:

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

方法1: git checkout -- <file>

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

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

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

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

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

演示结果: 撤销失败

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

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

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

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

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

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

总结4个场景结论:

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

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

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

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

四、 删除本地库文件

方法1: 当成正常的开发

# step1: 在工作树上删除

rm -f <file>

# step2: 添加缓存区

git add <file>

# step3: 提交到本地库

git commit -m

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

git rm <file>

git commit -m '<content>'

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值