在git版本管理中,经常有将其他提交与当前代码环境内容交互的需求,其中git reset、git checkout和git revert是与此类需求有关的一些命令,它们可以用来调整代码仓库中的某些更改;而且git reset和git checkout两个命令不仅可以作用于提交,还可以作用于特定文件,本文介绍上述三个命令的区别与工作原理。 git 基础内容 git ...
这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^效果是一样的。 对比分析 restore 与 reset 对比 添加文件后想撤销: 新建文件并git add: 现在不想要该文件了,用git restore --staged checkout.c命令重新放回工作区: 或者用git reset HEAD checkout.c命令重新放回工作区,此时两个命令的功能相同...
git reset 只是把文件从历史记录区拿到暂存区,不影响工作区的内容,而且不支持 --mixed、--soft、--hardgit checkout 则是把文件从暂存区拿到工作区,不影响暂存区的内容。当执行 git rm --cached 命令时,会直接从暂存区删除文件,工作区则不会做出改变当执行 git checkout . 或者 git checkout -- 命令时...
reset: 将暂存区的文件回撤到工作区,文件内容不会有任何变化 checkout: 将工作区文件恢复到上一次commit时的内容,将会丢失修改了但未加入暂存区的内容 __EOF__
和 reset 一样,checkout 也操纵三棵树,不过它有一点不同,这取决于你是否传给该命令一个文件路径。 不带路径 运行git checkout [branch] 与运行 git reset --hard [branch] 非常相似,它会更新所有三棵树使其看起来像 [branch],不过有两点重要的区别。 首先不同于 reset --hard,checkout 对工作目录是安全的...
git checkout <branchname>第二个就是放弃对某个文件的修改。例如你想放弃对某个文件Hello.cpp的修改...
在讲git的reset和checkout的区别之前,不得不说说HEAD、Index、Working Directory三个区域。 HEAD、Index、Working Directory Git里有三个区域很重要 HEAD 指向最近一次commit里的所有snapshot Index 缓存区域,只有Index区域里的东西才可以被commit Working Directory 用户操作区域 ...
Git - reset和checkout的区别 参考 https://segmentfault.com/a/1190000006185954 1. Git的所有操作实际上是在操作这三个区域的状态(或内容) 2. 区别 checkout是会修改HEAD的指向,变更Index区域里的内容,修改Working Directory里的内容。 这看上去很像reset --hard,但和reset --hard相比有两个重要的差别...
Git高级操作:reset,checkout,revert git reset,git checkout,和git revert命令是Git工具箱中最有用的几个工具之一。他们都用来撤销仓库中的某种修改,其中前两个命令可以用来撤销针对提交或者单个文件的修改。 因为如此相似,在特定开发场景下很容易出现不知道该使用那个命令的情况。在本文中我们会比较git reset,git che...
在讲git的reset和checkout的区别之前,不得不说说HEAD、Index、Working Directory三个区域。 HEAD、Index、Working Directory Git里有三个区域很重要 HEAD 指向最近一次commit里的所有snapshot Index 缓存区域,只有Index区域里的东西才可以被commit Working Directory 用户操作区域 ...