我没有想法,需要一些。
我正在尝试将更改从本地计算机推送到使用项目的远程服务器。
我有点使用本指南:http ://ryanflorence.com/deploying-websites-with-a-tiny-git-hook/
我像这样在本地机器上添加遥控器
$git remote add stage ssh://user@domain.com/var/www/domain.com/public_htm
l
这个 /var/www/domain.com/public_html 是 repo 的路径
然后当我这样做
$git push stage stage
一切似乎都有效,但更改似乎没有出现在网站上。
所以检查远程(阶段)#git status 我可以看到
$ On branch stage
$ Changes to be committed:
$ (use "git reset HEAD <file>..." to unstage)
$
$ modified: sites/all/modules/custom/bf/bf.forms.inc
$
因此,在远程(舞台)上执行 #git reset --hard 会带来变化。
然后我添加一个接收后挂钩来自动化这个过程我的接收后文件包含
#!/bin/sh
cd ..
GIT_DIR='.git'
umask 002 && git reset --hard
但是现在当我做 $git push stage stage 时,我得到了这个结果
计数对象:24,完成。Delta 压缩最多使用 2 个线程。压缩对象:100% (16/16),完成。写入对象:100% (16/16),1.56 KiB,完成。总共 16 个(delta 10),重用了 0 个(delta 0) remote:错误:拒绝更新已签出的分支:refs/heads/stage 远程:错误:默认情况下,在非裸存储库中更新当前分支远程:错误:被拒绝,因为它会使索引和工作树不一致远程:错误:与您推送的内容,并且需要'git reset --hard'来匹配远程:错误:工作树与HEAD。远程:错误:远程:错误:您可以在远程存储库中将“receive.denyCurrentBranch”配置变量设置为远程:错误:“忽略”或“警告”以允许推入远程:错误:其当前分支;然而,除非您远程:错误:安排更新其工作树以匹配您在某个远程:错误:其他方式中推送的内容,否则不建议这样做。远程:错误:远程:错误:要压制此消息并仍保持默认行为,请将远程:错误:'receive.denyCurrentBranch' 配置变量设置为'拒绝'。到 ssh://user@domain.com/var/www/domain.com/public_html ![远程拒绝] 阶段 -> 阶段(当前已签出分支)错误:未能将一些参考推送到 'ssh://user@domain.com/var/www/domain.com/public_html' 配置变量“拒绝”。到 ssh://user@domain.com/var/www/domain.com/public_html ![远程拒绝] 阶段 -> 阶段(当前已签出分支)错误:未能将一些参考推送到 'ssh://user@domain.com/var/www/domain.com/public_html' 配置变量“拒绝”。到 ssh://user@domain.com/var/www/domain.com/public_html ![远程拒绝] 阶段 -> 阶段(当前已签出分支)错误:未能将一些参考推送到 'ssh://user@domain.com/var/www/domain.com/public_html'
我该如何纠正这个问题?我的意思是根据消息,这不是推荐的工作流程,有更好的方法吗?