git reset [commit] [file] 重置某个commit的指定文件到暂存区(指定了[file],不会移动分支指针和HEAD指针) 备注:如果不指定[commit]则默认为HEAD,如果参数都不指定则重置暂存区所有文件 git checkout [file] 重置暂存区的指定文件到工作区(file为 . 则表示所有文件) git checkout [commit] [file] 重置某个c...
这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^效果是一样的。 对比分析 restore 与 reset 对比 添加文件后想撤销: 新建文件并git add: 现在不想要该文件了,用git restore --staged checkout.c命令重新放回工作区: 或者用git reset HEAD checkout.c命令重新放回工作区,此时两个命令的功能相同...
说完了git reset,我们来说一下checkout命令,checkout的原理基础也是和HEAD有关。checkout命令就是把把当前代码更新成头指针指向的提交。 4、checkout的应用 checkout的应用有很多种,但是最常用的还是两种,第一种就是切换分支,第二种就是更新工作区。 第一种应用场景: git checkout <branch> 这种原理就是将HEAD...
1. 使用git reflog命令查看历史操作:使用git reflog命令可以查看当前分支的操作历史记录。在输出结果中,可以找到之前的checkout操作,并记下对应的commit的哈希值。 2. 使用git reset命令恢复到之前的commit:使用git reset命令可以将分支指针移动到之前的commit,这样可以撤销checkout操作。命令的格式为git reset,其中是之...
Git高级操作:reset,checkout,revert git reset,git checkout,和git revert命令是Git工具箱中最有用的几个工具之一。他们都用来撤销仓库中的某种修改,其中前两个命令可以用来撤销针对提交或者单个文件的修改。 因为如此相似,在特定开发场景下很容易出现不知道该使用那个命令的情况。在本文中我们会比较git reset,git che...
git checkout <branchname>第二个就是放弃对某个文件的修改。例如你想放弃对某个文件Hello.cpp的修改...
reset 做的第一件事是移动 HEAD 的指向。 这与改变 HEAD 自身不同(checkout 所做的);reset 移动 HEAD 指向的分支。 这意味着如果 HEAD 设置为 master 分支(例如,你正在 master 分支上),运行 git reset 9e5e64a将会使master指向9e5e64a。 8.png ...
在讲git的reset和checkout的区别之前,不得不说说HEAD、Index、Working Directory三个区域。 HEAD、Index、Working Directory Git里有三个区域很重要 HEAD 指向最近一次commit里的所有snapshot Index 缓存区域,只有Index区域里的东西才可以被commit Working Directory 用户操作区域 ...
与git reset相反,git revert没有改变已有提交历史。基于此,git revert应该被用于撤销公共分支上的变更,而git reset应该被限制于撤销私有分支的变更。 你也可以理解为git revert用于撤销已提交的变更,git reset用于撤销未提交的变更。 与git checkout一样,git revert操作也会导致潜在的文件覆盖,所以Git也会要求在revert...
我们可以很方便地在历史版本之间互相切换,比如需要回到某次提交,直接checkout对应的 commit id或者tag名...