我意外地更新了对服务器的错误提交,当我将其重置为工作提交时,它显示你的分支主机后面1提交使用git pull来快进但我不想快进。我只想删除那个特定的远程提交.....
请帮忙
首先,正如@RomainVALERI指出的那样,我会非常小心地重置与其他人共享的远程分支上的历史记录。例如,如果它是开发或主分支,以任何方式重置历史记录绝不是一个好主意。
在git中撤消提交有两种常用方法。
对于像dev,master等共享分支来说,这是最安全的路由,因为有人可能已经完成了你做出的错误提交。您只需创建一个撤消错误提交和推送的新提交。
git revert <commit_hash>
git push
既然你的问题告诉我这是最近的提交(HEAD
指向的那个),你也可以做git revert HEAD
和推送。
如果它是您正在使用的分支,您可以采用此路线。它可能是一个功能或错误修复分支。既然只是你在研究它,重写历史并不重要。同样,我在这里假设它是您想要删除的最新提交。有更多涉及的方法来处理旧的提交(请参阅:git rebase)
正如@Rohan在他的回答中所做的那样,在错误提交和强制推送之前将HEAD
重置为提交。
git reset HEAD
git push --force
托管提供商(即VSTS,GitHub)还允许管理员提出每个人都需要遵守的分支策略。 dev / master分支的一个非常常见的策略是禁用“强制推送”,原因如上所述。如果它是一个共享的回购,很有可能你没有“强制推送”权限,你将不得不采取“恢复”路线。
根据帖子中提到的描述:
如果它是历史记录中的最后一次提交,那么以下命令将起作用
git reset HEAD
git push remote_name branch_name -f
如果它不是最后一次提交那么
步骤1:在提交之前找到要删除git log的提交。第2步:签出提交git checkout
希望它能回答你的问题。