Coo*_*coa 5 git version-control
我有一个本地git repo,我最近做了一个提交,然后推送到共享的回购.只有在我把它推到共享仓库后,我才意识到我犯了一个丑陋的错误.我修改了源代码后,我在本地修改了没问题:
git commit -C HEAD -a --amend
Run Code Online (Sandbox Code Playgroud)
之后,我尝试了另一个git push origin,我收到以下错误:
! [rejected] mybranch -> mybranch (non-fast forward)
Run Code Online (Sandbox Code Playgroud)
纠正这种情况的最佳方法是什么?
git没有(默认情况下)允许您将任何"倒带"分支提示的内容推送到分支.换句话说,如果当前分支头不是分支尖端的直接父级或祖先,则推送将被拒绝.
无论如何,您可以尝试使用-f选项git push或使用带有前导'+'的refspec,例如git push origin +mybranch:mybranch.
通常远程存储库仍然不会让这种情况发生,因为如果不同的人可以不加区别地推送不包含他们本地没有的提交的分支提示,则可能会丢失提交.
您可以通过更改receive.denyNonFastForwards远程存储库上的配置参数来覆盖此行为(假设您具有对远程存储库的适当访问权限).
如果您没有此类访问权限,则可以通过删除远程分支并重新创建它来实现此目的.
例如
git push origin :mybranch
git push origin mybranch
Run Code Online (Sandbox Code Playgroud)
请注意,更新版本的git包含一个配置参数receive.denyDeletes,如果设置该参数,将阻止此潜在危险的解决方法工作.
| 归档时间: |
|
| 查看次数: |
2664 次 |
| 最近记录: |