我不小心将错误的提交更新到服务器,并且当我将其重置为工作提交时,它表明您的分支主控落后于1个提交,请使用git pull来快进,但我不想快进。我只想从远程删除该特定提交.....
请帮助
答案 0 :(得分:1)
对于初学者,正如@RomainVALERI指出的那样,我非常小心地在与他人共享的远程分支上重置历史记录。例如,如果它是一个 dev 或 master 分支,那么以任何方式重置历史记录永远不是一个好主意。
有两种常见的方法来撤消git中的提交。
这是前往 dev , master 等共享分支的最安全的方法,因为有人可能已经拉入了您所做的错误提交。您只需创建一个新的提交即可撤消错误的提交并进行推送。
git revert <commit_hash>
git push
由于您的问题告诉我这是最近一次提交(HEAD
指向的提交),因此您也可以执行git revert HEAD
并进行推送。
如果这是您正在使用的分支,则可以采用此路线。它可能是功能或 bugfix 分支。由于只是您在进行操作,因此重写历史记录并不重要。 再次,我将在此假定它是您要删除的最新提交。有更多的方式可以处理较早的提交(请参见:git rebase)
@Rohan回答时,只需在错误的提交和强制推送之前将HEAD
重置为提交即可。
git reset HEAD
git push --force
托管服务提供商(即VSTS,GitHub )还允许管理员设置每个人都需要遵守的分支策略。出于上述原因, dev / master 分支的一个非常常见的策略是禁用“ 强制推送”。如果是共享存储库,则很有可能没有“ 强制推送”特权,因此您必须采取“ 还原”路线。
答案 1 :(得分:0)
根据帖子中提到的说明:
如果这是历史记录中的最后一次提交,则以下命令将起作用
git reset HEAD
git push remote_name branch_name -f
如果不是最后一次提交,则
步骤1:在要删除git log的提交之前找到提交。 第2步:签出git签出
希望它能回答您的问题。