记住git reset不会产生commits,它仅仅更新一个branch(branch本身就是一个指向一个commit的指针)指向另外一个commit(Head和branch Tip同时移动保持一致).其他的仅剩对于index和work tree(working directory)有什么影响。git checkout xxxCommit则只影响HEAD,如果xxxCommit和一个branch tip是一致的话,则HEAD和branch相匹配,...
实质上,reset这个指令虽然可以用来撤销commit,但它的实质行为并不是撤销,而是移动HEAD,并且「捎带」上HEAD所指向的branch(如果有的话)。也就是说,reset这个指令的行为其实和它的字面意思 "reset"(重置)十分相符:它是用来重置HEAD以及它所指向的branch的位置的。 而reset --hard HEAD^之所以起到了撤销commit的效果,...
记住git reset不会产生commits,它仅仅更新一个branch(branch本身就是一个指向一个commit的指针)指向另外一个commit(Head和branch Tip同时移动保持一致).其他的仅剩对于index和work tree(working directory)有什么影响。git checkout xxxCommit则只影响HEAD,如果xxxCommit和一个branch tip是一致的话,则HEAD和branch相匹配,...
记住git reset不会产生commits,它仅仅更新一个branch(branch本身就是一个指向一个commit的指针)指向另外一个commit(Head和branch Tip同时移动保持一致).其他的仅剩对于index和work tree(working directory)有什么影响。git checkout xxxCommit则只影响HEAD,如果xxxCommit和一个branch tip是一致的话,则HEAD和branch相匹配,...
reset 命令的原理是根据 commitId 来恢复版本。 因为每次提交都会生成一个 commitId,所以说 reset 可以帮你恢复到历史的任何一个版本。 这里的版本和提交是一个意思,一个 commitId 就是一个版本 命令格式如下: git reset [--soft | --mixed | --hard] [HEAD] ...
说revert,不得不跟 git reset 进行对比。reset 的含义是“回滚到某次 commit”。 2.1 Git reset 原理 git reset的作用是修改HEAD的位置,即将HEAD指向的位置改变为之前存在的某个版本,如下图所示,假设我们要回退到版本一: image.png 2.2 Git reset 操作 ...
git reset --hard HEAD^ 你的HEAD和当前branch切到上一条commit的同时,你工作目录里的新改动和已经add到stage区的新改动也一起全都消失了: git status reset --hard head^之后 可以看到,在reset --hard后,所有的改动都被擦掉了。 reset --soft:保留工作目录,并把重置 HEAD 所带来的新的差异放进暂存区 ...
git reset–hard 重置head指向commit、重置索引区、工作区,如果本地做了变更,add或者没add,最后不想要了,那么就用这种方式。 总结 这3种模式用联想记忆法,比如soft是软的意思,是最软的,重置head指向commit,索引区、工作区都保留;mixed是混合的,那就是中等喽,所以重置索引区,保留工作区;hard是最硬的,重置索引区...
在github图形化界面上看,远程库的HEAD也已经指向目标版本: 回退成功! 方法二:git revert 原理: git revert是用于“反做”某一个版本,以达到撤销该版本的修改的目的。比如,我们commit了三个版本(版本一、版本二、 版本三),突然发现版本二不行(如:有bug),想要撤销版本二,但又不想影响撤销版本三的提交,就可以用...
git reset --mixed HEAD~1 1. 解释: HEAD~1表示回退到上一个提交。 使用--mixed,回退后提交的更改会从暂存区移出,但保留在工作区中(git status会显示为未暂存的文件)。 重新选择需要提交的文件: git add 需要提交的文件 git commit -m "正确选择的提交" ...