首先git是分布式版本管理控制系统,在他的架构中分为以下几个区域

git常用命令之大白话说明
图中每一个流程代表一个开发人员

git reset 命令之 --hard --mixed --soft 的区别

命令:git reset --hard 版本号

  • soft:仅仅移动当前Head指针,不会改变工作区和暂存区的内容;即回到将文件修改好并且执行add命令后
  • mixed:是reset的默认参数,移动head指针,改变暂存区内容,但不会改变工作区 ;即回到将文件刚刚修改好的时候
  • hard:当前head指针、工作区和暂存区内容全部改变 ;即回到指定版本(自己在改指定版本上的修改全部删除)

git checkout

命令:git checkout 文件名

  • checkout 文件名:使用暂存区的文件覆盖工作区
    所以执行完git add .之后,再执行该命令是无效的 git checkout 和git add是一对反义词;
    比如一个文件我写了3行文字并且add到了暂存区,在还没有提交的时候我又追加了2行,此时文件是5行,就在此时我发现我后边追加的2行是错误的,这个时候我就可以使用checkout命令,使用暂存区的文件覆盖工作区的文件

命令:git checkout 分支名

  • checkout 分支名:切换分支

git stash

命令:git stash

  • stash:将暂时还不想add、commit的修改进行缓存并清空修改的部分。
  • stash list:清空了修改的部分,那刚才修改的部分缓存到哪去了?用git stash list命令看看
  • stash pop :恢复刚刚缓存的,并清空缓存

git revert

命令:git revert 版本号

  • revert:是用于回滚某一个版本(注意:不是回滚到某一个版本),以达到撤销指定版本的修改的目的。比如,我们commit了三个版本(版本一、版本二、
    版本三),突然发现版本二不行(如:有bug),想要撤销版本二,但又不想影响撤销版本三的提交,就可以用 git revert
    命令来回滚版本二(通常会有冲突,解决冲突进行提交),生成新的版本四,这个版本四里会保留版本三的东西,但撤销了版本二的东西。

例如:

  1. 有一个1.txt的文件,目前我们分别commit了两次

git常用命令之大白话说明

  1. 分别在commit3次
    git常用命令之大白话说明
  2. 此时我们突然发现不应该写 “第2次提交”,但是又想保留3、4、5次提交。这个时候就可以使用revert
    git常用命令之大白话说明
    这里文件就发生冲突了(不要慌,有冲突我们就解决冲突,这也是revert会带来的问题),文件中也告诉我们revert指定版本所提交的内容。
    解决冲突:
    git常用命令之大白话说明
  3. 解决完冲突进行add 并 commit
    git常用命令之大白话说明
    这样就“回滚”某一个版本。

reset是“回滚到”某个版本如果使用reset到第二次提交的版本的话,3、4、5就不会保存了。

相关文章:

  • 2021-10-21
  • 2022-12-23
  • 2021-12-13
  • 2021-08-13
  • 2021-11-21
  • 2021-09-09
  • 2022-01-26
  • 2022-12-23
猜你喜欢
  • 2021-11-02
  • 2022-12-23
  • 2021-08-29
  • 2021-08-14
  • 2022-12-23
相关资源
相似解决方案