git - 从源中删除提交
问题描述
当我打算克隆一个项目并设置一个新的原点时,我不小心向我的原点提交了一些提交。我已经恢复了我想要保留的 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 选项。)
解决方案
有一个古老的故事,一个魔术师召唤了一个守护进程来保护他的东西(魔杖,药水,不管是什么)。他告诉守护进程他要离开几天,并且守护进程应该吃掉任何回到他家的人。
三天后,魔术师回到他家,恶魔吃了他。
你已经在你的 Gitlab 存储库中编写了一个稍微友好的守护进程——一个预接收挂钩。您告诉它禁止任何试图从您的存储库中删除提交的人。您尝试使用git push --force
. 你的守护进程阻止你这样做。
如果你现在想这样做,你应该删除你的守护进程,或者让它更聪明。不要随便吃任何人,吃任何不是你的人。
推荐阅读
- api - 来自 CURL 或 PHP 的应用程序脚本中的 PUT 方法!不工作
- java - 将 CardViews 从另一个 Activity 动态添加到 LinearLayout
- javascript - 当我断开连接或当我有同一个用户的多个选项卡时,Socket.io 代码不会在 DOM 上更新。但是,当我连接时,它工作正常。为什么?
- c# - 通过 ASP.NET Core Web API 使用存储过程从 SQL Server 返回多个行集
- go - 解组自定义值映射
- python - pip 包仅安装在默认的 mac 终端中,而不是安装在文本编辑器(atom/vscode)中的任何集成终端中
- flutter - 如何在颤动中将文件从file.path转换为base64
- macos - Visual Studio Mac:NUnit:为什么项目名称旁边有红色闪电?
- google-sheets - 如何在工作表中组合两个范围(交织而不是连接)
- spring - 弹簧误差