Git仅在本地存储库中还原公共提交

SSi*_*ilk 1 git version-control git-revert

假设有一个公共提交“ xxxx”,我认为这引起了一个错误,并且我想在本地进行恢复该提交的实验。

如果我从文档正确认识git revert12),它的作品了恢复目标提交XXXX需要的变化,自动和推动他们到公共仓库。那是对的吗?这是我担心的最后一部分。

即将git revert xxxx还原公共存储库中的xxxx?

如果是这样,有没有办法仅在我的本地工作文件夹中执行此操作,以便我可以构建具有还原的提交的HEAD副本并进行试验,而不会影响其他开发人员?

我是否需要使用--no-commit选项:git revert xxxx --no-commit

还是有另一种方法我应该这样做?

谢谢。

Tim*_*sen 5

相反,你显然是看到或听到,git revert没有推动什么远程仓库。它只是向分支的HEAD添加一个(或更多)新的提交,从功能上撤消该提交或通过参数传递的提交。如果您提交abcd1234并运行了

git revert abcd1234
Run Code Online (Sandbox Code Playgroud)

然后,Git会将新的提交添加到您的分支以撤消该提交。

通常,东西只能通过来从本地Git传递到远程git push,因此,只要您实际上没有这样做,就应该是清楚的。

如果您感到非常谨慎,可以随时创建一个新分支并使用来测试该漏洞的修复git revert。顺便说一句,作为安全预防措施,许多使用像GitHub这样的仓库的人都将配置关键分支,以使甚至无法直接向其推送。