首页 > 解决方案 > 从源中删除提交

问题描述

当我打算克隆一个项目并设置一个新的原点时,我不小心向我的原点提交了一些提交。我已经恢复了我想要保留的 repo 中的更改,但无法将它们推送到原点。

$ git log --pretty=oneline --format=%h

dff98f5
2e97c31
31b8b73
460fae6
c589d7a
edbda48

$git reset --hard 460fae6

On branch master...

这是行不通的

git push --force origin master

! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@gitlab.com:username/projectname.git'

如何更新我的 Gitlab 存储库?(我在网站上没有看到任何 UI 选项。)

标签: gitgitlab

解决方案


有一个古老的故事,一个魔术师召唤了一个守护进程来保护他的东西(魔杖,药水,不管是什么)。他告诉守护进程他要离开几天,并且守护进程应该吃掉任何回到他家的人。

三天后,魔术师回到他家,恶魔吃了他。

你已经在你的 Gitlab 存储库中编写了一个稍微友好的守护进程——一个预接收挂钩。您告诉它禁止任何试图从您的存储库中删除提交的人。您尝试使用git push --force. 你的守护进程阻止你这样做。

如果你现在想这样做,你应该删除你的守护进程,或者让它更聪明。不要随便吃任何人,吃任何不是你的人。


推荐阅读