rnrneverdies Asked: 2020-12-02 11:49:16 +0800 CST 2020-12-02 11:49:16 +0800 CST 2020-12-02 11:49:16 +0800 CST 如果我已经将更改上传到源,如何恢复提交? 772 我刚刚意识到我做了一个commit包含密码的东西。问题是我已经将更改上传到源存储库。 如何修复它而不丢失我所做的更改并且不将密码留在存储库历史记录中? git 5 Answers Voted Best Answer Carlangueitor 2020-12-02T11:51:00+08:002020-12-02T11:51:00+08:00 你必须再次提交,因为你可以在这里看到如何,然后你必须强制你的版本: git push -f origin master 如果其他人已经取消了这些更改,则可能会导致问题,但如果您只使用它,它是安全的。 Joel Ibaceta 2020-12-03T08:10:08+08:002020-12-03T08:10:08+08:00 您可以使用 git rebase 删除最后一次提交。 git rebase -i HEAD~1 必须注释掉提交、保存、退出编辑器对应的代码行。 稍后运行 git push -f origin master Jean 2020-03-18T14:34:06+08:002020-03-18T14:34:06+08:00 为此,您必须: 1)找到服务器提交。您可以像这样获得最后 10 次提交: git log -10 --pretty="%H" 这显示了提交的哈希值 30ace57438659c6a715db441ffc6751f385db667 484121a5ed21e8b842ffe61783fde059103185b3 996ee5f0aabd18d14a73e0181780dcc9191337f4 2b0ea751d69c84b909b3011ba5de865125d209b2 2)定位到所需的点并返回到所需的提交 git reset --hard 484121a5ed21e8b842ffe61783fde059103185b3 HEAD is now at 484121a 3)将更改推送到存储库服务器 git push --force 并准备好了。它用于返回任何提交。 OscarRyz 2020-12-08T09:45:42+08:002020-12-08T09:45:42+08:00 您必须从本地存储库中删除提交,然后使用该选项强制将其作为最后一个状态-f 例如删除 10 个提交 git reset --hard HEAD~10 然后强制它成为原始状态 git push -f origin master 有关如何从本地历史记录中删除提交的更多信息: 如何撤消 Git 中的最后一次提交? Juan Ignacio 2022-08-02T14:31:37+08:002022-08-02T14:31:37+08:00 删除本地存储库中的提交,但不保存所做的更改: git reset HEAD^ --hard 删除本地存储库中的提交并保存所做的更改: git reset HEAD^ --soft 随后,它可以被强制推送到远程存储库。 git push -f origin master
你必须再次提交,因为你可以在这里看到如何,然后你必须强制你的版本:
如果其他人已经取消了这些更改,则可能会导致问题,但如果您只使用它,它是安全的。
您可以使用 git rebase 删除最后一次提交。
必须注释掉提交、保存、退出编辑器对应的代码行。
稍后运行
为此,您必须:
1)找到服务器提交。您可以像这样获得最后 10 次提交:
这显示了提交的哈希值
2)定位到所需的点并返回到所需的提交
3)将更改推送到存储库服务器
并准备好了。它用于返回任何提交。
您必须从本地存储库中删除提交,然后使用该选项强制将其作为最后一个状态
-f
例如删除 10 个提交
然后强制它成为原始状态
有关如何从本地历史记录中删除提交的更多信息:
如何撤消 Git 中的最后一次提交?
删除本地存储库中的提交,但不保存所做的更改:
删除本地存储库中的提交并保存所做的更改:
随后,它可以被强制推送到远程存储库。