本文介绍一些开发时,常用的在工作区和本地库之间的操作命令
工作树的修改内容要提交到本地库,首先需要先添加到缓存区stage,在commit到本地库。
# filename就是你修改后需要提交的文件
git add
# git commit将缓存区的文件一次性提交到本地库
git commit -m '备注'
你开发了一段时间,可能已经忘记了修改过那几个文件
可以使用 git status 查看工作区和缓存区的内容,即修改过的文件和新增的文件,
也可以使用 git diff 查看工作区和本地库的版本差异(即内容差异,包括修改和新增,删除)
# 查看工作区和缓存区的状态
git status
# 查看指定文件 在工作区和本地库的差异
git diff
git是版本控制系统,那么是支持使用指定版本的文件。
git log
想要精简点的提交历史: 加上 参数 --pretty=oneline
git reflog
这里分为两种情况
第一种是修改内容已经提交到了本地库。 需要从本地库回滚版本。
第二种是修改内容还未提交到本地库,则需要撤销缓存区和工作区的修改内容
想要回滚大版本
他有三种模式 --soft --mixed(默认的模式) 和 --hard。 改变的内容由少到多
仅仅改变当前HEAD 指针(当前的版本号),工作区和缓存区修改的内容全部保留(即当前修改的内容也全部还在)。
默认的参数, 改变当前的HEAD指针,也改变缓存区的修改内容。但是保留了工作区的内容
HEAD指针,缓存区和工作区全部改变
--soft的效果演示
--mixed效果演示: (放弃缓存区修改内容,保留工作区的修改内容)
--hard: 效果演示
则需要回滚两个地方的,一个是缓存区,一个是工作区
git reset HEAD
自己的理解,HEAD代表是最新的版本号, reset就是之前演示的, 默认是--mixed,即更改HEAD值和缓存区内容,保留工作区内容。 (但是--soft和--hard 是没办法和文件搭配使用,只能)
演示:
git checkout --
缓存区有修改优先回滚到缓存区状态,缓存区没有,回滚则回到本地库状态。
所以前提是这个文件本地库或缓存区必须有,如果没有,则无法生效。
示例: 在本地库或者缓存区没有的情况下, git checkout -- file 撤销工作区的修改效果
演示结果: 撤销失败
演示结果: 撤销成功, 回到缓存区的状态
演示结果:撤销成功,撤销后状态和本地库的状态一致
演示结果:撤销成功。撤销后的状态和缓存区一致
git checkout -- file,是优先对比工作区和缓存区的, 如果缓存区没有内容,则对比工作区和本地库的。
所以修改未提交到本地库的回滚,需要两步
将当前版本的本地所有文件修改内容全部放弃, 包括缓存区和工作区
方法1: 当成正常的开发
# step1: 在工作树上删除
rm -f
# step2: 添加缓存区
git add
# step3: 提交到本地库
git commit -m
方法2: 直接删除本地库中的文件
git rm
git commit -m ''
下一步准备总结,在本地库和远程库的操作, 包括本地库和远程库分支的增删改查,以及本地库和远程库的关联创建
git本地库和远程库的相关操作命令_龟速扣代码的博客-CSDN博客