我在服务器上有一个网站,我想开始分享我的工作,所以我正在使用git。我很新。
所以在远程服务器上,我创建了一个“git init”和一个git commit来移动.git目录上的所有工作(总是在远程服务器上)。
然后我在本地服务器上创建了一个git clone(带有ssh连接)。然后我更改了一些文件并提交了它(工作正常)然后推送它,但这里是错误信息:
remote: error: refusing to update checked out branch: refs/heads/master
remote: error: By default, updating the current branch in a non-bare repository
remote: error: is denied, because it will make the index and work tree inconsistent
remote: error: with what you pushed, and will require 'git reset --hard' to match
remote: error: the work tree to HEAD.
remote: error:
remote: error: You can set 'receive.denyCurrentBranch' configuration variable to
remote: error: 'ignore' or 'warn' in the remote repository to allow pushing into
remote: error: its current branch; however, this is not recommended unless you
remote: error: arranged to update its work tree to match what you pushed in some
remote: error: other way.
remote: error:
remote: error: To squelch this message and still keep the default behaviour, set
remote: error: 'receive.denyCurrentBranch' configuration variable to 'refuse'.
To ssh://sameditr@ftp.sameditresfroid.fr/homez.501/sameditr/www/.git
! [remote rejected] master -> master (branch is currently checked out)
error: failed to push some refs to 'ssh:...'
有人有想法吗?
最佳, Newben
答案 0 :(得分:1)
如果您打算在远程服务器上创建中央存储库,则应创建 bare 存储库:
git init --bare
您可以配置当前的非裸存储库以接受更新(错误消息甚至告诉您如何),但更简单的方法是删除远程服务器上的当前存储库并创建新的裸存储库。
以下是detailed explanation of difference between bare and non-bare repos.
的链接答案 1 :(得分:1)
我通常会做以下事情:
在服务器上,在webapp目录中
$ git init
$ git add *
$ git commit -a
获得初始提交
在开发计算机上,您可以这样做:$ git init
$ git remote add origin git+ssh://server/var/www/.git/
$ git branch --set-upstream master origin/master
$ git pull
编辑dev
上的文件$ git push
希望这有帮助!