回滚历史提交
就是reset的功能。这种情况是已经提交远程仓库,需要回滚到之前的提交。
git reset --hard commitId
// 注:强制提交后,当前版本后面的提交版本将会删掉!
git push -f
回滚到之后的版本
比如上面的回滚从v3回滚到了v2,现在又要回滚到v3。但是现在通过git log是看不到v3的,这怎么办,有办法,使用`reflog`
//通过reflog可以看到被回滚的提交信息
git reflog
git reset --hard commitId
git push -f
git放弃本地文件修改
一、未使用git add 缓存代码
使用git checkout -- filename,注意中间有--
git checkout -- filename
放弃所有文件修改 git checkout .(注意这个点)
git checkout .
此命令用来放弃掉所有还没有加入到缓存区(就是 git add 命令)的修改:内容修改与整个文件删除
此命令不会删除新建的文件,因为新建的文件还没加入git管理系统中,所以对git来说是未知,只需手动删除即可
二、已使用git add 缓存代码,未使用git commit
使用 git reset HEAD filename
git reset HEAD filename
放弃所有文件修改 git reset HEAD
git reset HEAD
此命令用来清除 git 对于文件修改的缓存。相当于撤销 git add 命令所在的工作。在使用本命令后,本地的修改并不会消失,而是回到了第一步1. 未使用git add 缓存代码,继续使用用git checkout -- filename,就可以放弃本地修改
三、已经用 git commit 提交了代码
使用 git reset --hard HEAD^ 来回退到上一次commit的状态
git reset --hard commitId
或者回退到任意版本git reset --hard commitid ,使用git log命令查看git提交历史和commitid
git reset --hard commitId
// 注:强制提交后,当前版本后面的提交版本将会删掉!
git push -f