1.使用 git reset 命令来回滚 commit。但是需要注意的是,git reset 命令将会重写分支历史记录,因此使用时需要谨慎。
如果你想要撤销上一个 commit,可以使用以下命令:
git reset HEAD~1
这将会回滚上一次提交并将更改放回暂存区,你可以再次对代码进行修改后重新提交。如果你想要彻底删除该 commit,并且你没有推送到远程仓库,则可以使用以下命令:
git reset --hard HEAD~1
这将会撤销上一个提交并将代码恢复到上一个提交之前的状态。请注意,这个命令不仅会删除最新的 commit,还会删除 commit 之后的所有更改,因此在使用时应特别小心。如果你已经将 commit 推送到远程仓库,则需要使用
git push --force
命令强制推送修改后的分支。
2.如果你在 git push 之后发现了问题,可以使用 git revert 命令来撤销 commit。
首先,查找你想要回滚的 commit 的哈希值,可以使用 git log 命令:
git log --oneline
这将列出最近的几个 commit 和它们的哈希值。
然后,使用 git revert 命令来撤销该 commit。例如,如果你想要撤销最近的 commit,可以运行:
git revert HEAD
如果你想要撤销其他 commit,可以将其哈希值替换为 HEAD。
Git 将会打开一个文本编辑器,让你输入一些有关这个新 commit 的信息。确保写下一个清晰的撤销信息,以便以后跟踪修改历史。
保存并关闭编辑器后,Git 将会创建一个新的 commit,撤销你指定的 commit,并将其添加到分支上。这个新 commit 包含对文件的更改,以恢复它们至它们在先前 commit 中的状态。
最后,运行 git push 命令,将 commit 推送到远程仓库:
git push origin <branch-name>
其中,“<branch-name>”是你要推送的分支的名称。
请注意,git revert 命令将会创建一个新的 commit,这意味着你正在更改分支历史记录。因此,如果你共享了你的分支或合并请求,则其他人可能会遇到问题。如果你想要回滚远程仓库中的 commit,则需要使用 git push --force 命令强制推送修改后的分支。
强制推送修改后的分支,风险很大,要谨慎使用
git push -f
如果没有push,建议使用git reset.
已经push了,用revert.