Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
重置后在git push中显示错误--硬错误、致命错误非快进_Git - Fatal编程技术网

重置后在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:哦,手册没有说得太清楚