场景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))
.
本文详细介绍了Git的重置和撤销操作,包括如何使用gitreset--mixed取消已添加的文件,gitreset--hard回退到指定commit,以及gitrevert撤销commit。此外,还讲解了如何在未push的情况下撤销merge操作,以及在IDEA中如何实现。特别强调了gitreset--hard的危险性,推荐使用gitrevert作为更安全的选择。
8298

被折叠的 条评论
为什么被折叠?



