重置后在git push中显示错误--硬错误、致命错误非快进
我想删除远程存储库上的两个已断开的提交 我用过:重置后在git push中显示错误--硬错误、致命错误非快进,git,Git,我想删除远程存储库上的两个已断开的提交 我用过: git reset --hard <commit_id> 但如果我再次拉,我使用git reset删除的旧提交将返回 我试着用 git push origin master --force 已经有了,但仍然不起作用 我应该如何解决这个问题,以便从远程删除提交,并将新文件追加回远程 谢谢 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 更新: 关于使用git-push
git reset --hard <commit_id>
但如果我再次拉,我使用git reset删除的旧提交将返回
我试着用
git push origin master --force
已经有了,但仍然不起作用
我应该如何解决这个问题,以便从远程删除提交,并将新文件追加回远程
谢谢
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
更新:
关于使用git-push-origin:master
下面是QX的答案输出
$git push origin :master
stdin: is not a tty
remote: error: By default, deleting the current branch is denied, because the next
remote: error: 'git clone' won't result in any file checked out, causing confusion.
remote: error:
remote: error: You can set 'receive.denyDeleteCurrent' configuration variable to
remote: error: 'warn' or 'ignore' in the remote repository to allow deleting the
remote: error: current branch, with or without a warning message.
remote: error:
remote: error: To squelch this message, you can set it to 'refuse'.
remote: error: refusing to delete the current branch: refs/heads/master
To ssh://me@domain.com/repos.git
! [remote rejected] master (deletion of the current branch prohibited)
error: failed to push some refs to ssh://me@domain.com/repos.git
您的远程存储库可能具有receive.denynonfastforts设置 在其配置中启用。此选项的文档状态为: 如果设置为true,git receive pack将拒绝一个不是 快进。使用此选项可防止通过推送进行此类更新,即使推送 是被迫的。此配置变量是在初始化共享文件时设置的 存储库 您可以通过以下方式来解决此问题:
git push origin :master
git push origin master
第一个命令中分支名称的前导冒号将其转换为
请求删除远程存储库上的分支。完成后
推动分支的当前版本将不再被视为
非快进推进。但也有一个选项可以设置在
远程存储库阻止删除,receive.denyDeletes。您的远程存储库可能具有receive.denynonfastforts设置 在其配置中启用。此选项的文档状态为: 如果设置为true,git receive pack将拒绝一个不是 快进。使用此选项可防止通过推送进行此类更新,即使推送 是被迫的。此配置变量是在初始化共享文件时设置的 存储库 您可以通过以下方式来解决此问题:
git push origin :master
git push origin master
第一个命令中分支名称的前导冒号将其转换为
请求删除远程存储库上的分支。完成后
推动分支的当前版本将不再被视为
非快进推进。但也有一个选项可以设置在
远程存储库以防止删除,receive.denyDeletes。从某种意义上说,我想要实现的是用我的新提交覆盖最后两次提交。。如果允许删除分支,这两个命令将实现与强制推送基本相同的效果。因此,是的,您将能够从远程删除或替换提交。我可以禁用远程上的设置receive.denyNonFastForwards以使其正常工作吗?是的,禁用该设置将允许您原来的强制推送工作。从某种意义上说,我想要实现的是用我的新提交覆盖最后两次提交。。如果允许删除分支,这两个命令将实现与强制推送基本相同的效果。因此,是的,您可以从远程删除或替换提交。我可以禁用远程上的设置receive.denyNonFastForwards以使其正常工作吗?是,禁用该设置应允许使用-force进行原始推送。您尝试过git push origin+master吗?@Hasturkun使用-force选项相当于在每个要推送的分支前面加上+,因此这与已经尝试过的没有任何区别。@qqx:Ah,手册没有把它说得太清楚你试过git push origin+master吗?@Hasturkun使用-force选项相当于在每个要推送的分支前面加上+,这样就不会对已经尝试过的分支产生任何影响。@qqx:哦,手册没有说得太清楚