我在远程存储库中有一个项目,与本地存储库(开发)和服务器存储库(prod)同步。我一直在做一些已经推送到远程和从服务器上拉出来的承诺更改。现在,我想撤销这些更改。因此,我可以在更改之前签出到提交,并提交新更改,但我猜再次将它们推到远程会有问题。我该怎么做,有什么建议吗?


当前回答

重置对我来说很困难: 谢谢@Mo D Genensis和@vibs2006


git reset --hard 'your last working commit hash'

git clean -f -d

git push -f

其他回答

Git重置<commit_hash>(获取<commit_hash>使用Git log——oneline)

Git恢复。将所有更改的文件恢复到yout目标提交的版本

Git push origin master——force强制推到远程主分支。但如果有人和你在同一分支工作,在使用力推时要小心

你可以这样做

git push origin +<short_commit_sha>^:<branch_name>

简单方法:

git reset <commit_hash>

(您希望保留的最后一个提交的哈希值)。

您将在本地保留当前未提交的更改。

如果你想再推一次,你必须做到:

git push -f

另一种不需要恢复(undo的痕迹)的方法:

如果其他人已经推送了其他提交,就不要这样做

创建你的分支的备份,在你的分支my-branch。因此,如果出现错误,您可以重新启动进程而不会损失任何已完成的工作。

git checkout -b my-branch-temp

回到你的分行去。

git checkout my-branch

重置,放弃你的最后一次提交(撤销它):

git reset --hard HEAD^

移除远程上的分支(例如origin远程)。

git push origin :my-branch

将分支重新推到远程(没有不必要的提交)。

git push origin my-branch

完成了!

我希望这对你有所帮助!;)

git revert HEAD -m 1

在上面的代码行。"最后一个参数表示"

1 -还原一次提交。 2 -返回最近两次提交。 N -返回上一个N 提交。

该命令后需要按一下才能对远程生效。您还有其他选项,例如指定要恢复的提交范围。这是选项之一。


稍后使用git commit -am "COMMIT_MESSAGE" 然后是git push或git push -f