在实际开发中,你是否遇到过错误的提交了代码,想要删掉本次提交记录的情况,你可以按照如下方法实现。
**1、使用
git revert
**
如果你想要保留历史记录,并且对远程仓库其他使用者的影响最小,你可以使用
git revert
命令。这个命令会创建一个新的提交,这个新提交是对之前提交的逆向操作。例如,要撤销最近的一次提交,你可以执行:
git revert HEAD
git push origin main
这里
main
是你的目标分支,根据实际情况可能需要替换。
**2、使用
git reset(推荐)
**
如果你需要从历史记录中完全删除某次提交,可以使用
git reset
。注意,这种方法会重写历史,可能会给其他协作者带来问题。如果确定要这么做,可以按照以下步骤操作:
根据自己的实际情况选择 reset 的三种模式:
**
git reset --soft
**:保留工作目录和暂存区的更改,只重置提交指针**
git reset --mixed
**:保留工作目录的更改,清除暂存区**
git reset --hard
**:丢弃所有更改如果你想本地仓库和远程仓库都不保留你本次 commit 的代码:
git reset --hard HEAD~1
git push origin main --force
这里
HEAD~1
将 HEAD 移回到前一次提交,
--hard
选项会使工作目录中的文件状态与仓库同步。
--force
选项用于强制推送到远程仓库,这会覆盖远程仓库中的历史。
如果你想保留本地仓库的代码(以便再次编辑),只撤销远程仓库的 commit:
git reset --mixed HEAD~1
git push origin main --force
**3、使用
git push --force-with-lease
**:
如果你需要强制推送,但又想确保不会覆盖其他协作者的工作,可以使用
--force-with-lease
选项。这个选项比
--force
更安全,它会在推送前检查远程分支的状态是否发生了改变。
git reset --hard HEAD~1
git push --force-with-lease origin main
版权归原作者 起风的秋天@ 所有, 如有侵权,请联系我们删除。