场景1:Git Add了一个错误文件
git reset --mixed 仅取消 git add 带来的效果。
步骤1
步骤2
场景2: 本地 commit,未 push 到远程。
回退到指定到 commit号
git reset --hard commitId, 这个命令 回退到指定的commit,并且不会保留本地尚未提交的修改。所以一定要慎重使用。
取消commit时,更安全的操作: revert 更安全的操作, 使用 git revert
git revert commitId,会撤销指定的commit,但是与 reset --hard 不同的是,revert 不会丢掉被撤销的commit,而是会生成一个新的commit,其所有操作与指定的commit 相反,以此来覆盖掉该commit 的修改。
举个栗子: 按序有三个commit: c1, c2, c3。 现在我们位于c3. 使用 git commit --hard c2, 则当前状态会退回到 c2, git log, 只会看到,c2、c1. 而 如果使用git revert c2,则会新添加一个c4的commit,c4的操作与c2 完全相反。 git log 可以看到 1 ~ 4 全部的commit。
选取GIT重置HEAD
步骤二:填写commit的id 就可以取消这一次的commit
场景3 撤销push操作
操作1 :Revert Commit
场景三:Git如何撤销merge操作 命令 git merge --abort
1.idea针对已经merge还未push的git,进行撤销。
在idea的菜单栏 选择 VCS->git->Show History
在git log里选择 remote(即远程分支上的git操作记录)
然后选择被合并merged的分支
在被mergerd的提交记录上右键选择 Revert Commit
或者 选择 undo commit,然后再 revert (或者 Rollback(idea高版本叫Rollback))
.