git - 在不拉的情况下推送更改

  显示原文与译文双语对照的内容
0 0

我正在尝试撤消已经被推送到远程存储库中的一些更改,并在本地使用


git reset --hard COMMIT-HASH

但现在它不会让我先推,这当然会失败。 我尝试过:

 
git push -f

 

哪些错误与:


Total 0 (delta 0), reused 0 (delta 0)
remote: error: denying non-fast-forward refs/heads/master (you should pull first)
To git@xxx.beanstalkapp.com:/yyy.git
! [remote rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'git@xxx.beanstalkapp.com:/yyy.git'

那么我怎样才能将我的新的正确版本的分支下载到远程?

时间: 原作者:

0 0

git config 手册页:

receive.denyNonFastForwards

如果设置为 true,git-receive-pack将拒绝一个ref更新 fast 。 使用这里选项可以防止通过推送进行此类更新,即使强制强制。 在初始化共享存储库时设置这里配置变量。

你试图推送的服务器已经启用这里设置。 所以,简短的回答是,在这种情况下,你将能够将 NOT git push --force


要获得正确的分支版本到远程服务器,你必须向分支的顶端提交一个新的提交,使它的获得正确的状态。 如果当前处于正确状态的提交,则可以运行以下操作:


$ git reset --soft <remote>/<branch> # point the ref back to the remote, but
 # keep the index and working tree

$ git commit # make the 'correction' commit
$ git push

0 0

你的服务器是否不允许快速转发?

git配置文件


[receive]
denyNonFastforwards = true

原作者:
0 0

撤销git中的更改的最好方法是使用 git revert 命令。

若要撤消上次提交,请执行下列操作: git revert HEAD^

它将撤消最后一次提交所做的更改,然后在它上面创建一个新的提交。

希望能帮到某人。

原作者:
...