我是git新手,这就是我所做的:
我已经使用git hook工作ngnix服务器,我正在通过git push production master
命令推送我的项目。
现在我将set1
提交推送到服务器,稍后我会在计算机上将其恢复,所以我尝试再次推送以前的版本:set0
我的服务器回复我:
To ssh://website/var/repo/site.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'ssh://root@website/var/repo/site.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
我现在该怎么办?我想在服务器上恢复我的set1
更改。
我在服务器上的配置位于post-receive
文件中:
#!/bin/sh
git --work-tree=/var/www/laravel --git-dir=/var/repo/site.git checkout -f
但没有活动存储库。谢谢你的帮助!
答案 0 :(得分:1)
显示错误是因为由于上次提交不匹配,您的本地分支现在与服务器不同步。
因此,如果要在还原最后一次提交后进行推送,请使用以下命令:
git push production master -f
-f
表示强制推送,无论提交哈希不匹配。
编辑:另外,在推动之前,您可以使用--force-with-lease更安全。
- force-with-lease有效地只允许你强制推送,如果没有其他人在过渡期间将更改推送到遥控器。它是 - 强制安全带。
如果您有兴趣进一步了解它,请阅读this相同
的美妙解释