-5

我通过运行从 Assembla 克隆了一个 Git 存储库:

git clone git@git.assembla.com:[my_project].git

如何/usr/local/project与其他用户共享我的工作存储库(位于 ),以便他们可以直接从我的工作存储库中获取/拉取并推送到我的工作存储库?

我已经尝试通过运行以下命令从我的工作存储库中初始化 Git 存储库:

git init

或者

git init --bare

然后我使用另一台计算机将提交推送到我的工作存储库,但我收到错误:

Pushing to /usr/local/project/
remote: error: refusing to update checked out branch: refs/heads/master[K
remote: error: By default, updating the current branch in a non-bare repository[K
remote: error: is denied, because it will make the index and work tree inconsistent[K
remote: error: with what you pushed, and will require 'git reset --hard' to match[K
remote: error: the work tree to HEAD.[K
remote: error: [K
remote: error: You can set 'receive.denyCurrentBranch' configuration variable to[K
remote: error: 'ignore' or 'warn' in the remote repository to allow pushing into[K
remote: error: its current branch; however, this is not recommended unless you[K
remote: error: arranged to update its work tree to match what you pushed in some[K
remote: error: other way.[K
remote: error: [K
remote: error: To squelch this message and still keep the default behaviour, set[K
remote: error: 'receive.denyCurrentBranch' configuration variable to 'refuse'.[K
To /usr/local/project/
 ! [remote rejected] master -> master (branch is currently checked out)
error: failed to push some refs to '/usr/local/project'
4

2 回答 2

2

这似乎与我曾经遇到的一个问题非常相关:

error: refusing to update checked out branch: refs/heads/master

我读过这是因为分支处于非裸状态。如果有人向这个分支推送,它将覆盖已签出副本的现有状态。

一个通用的解决方案是使用一个裸存储库,它通过以下方式完成:

git init --bare

另一种可能性是使用分支

git push 失败:`拒绝更新签出的分支:refs/heads/master`也给了我一些关于如何解决它的深刻见解!

祝你好运!:)

乔伊

于 2015-02-25T04:50:50.807 回答
1

如果您要在多台计算机之间进行协作甚至共享,则必须设置远程存储库。通常人们使用诸如 Github 或 Unfuddle 之类的服务来托管远程仓库。但是,您也可以设置自己的。官方的 Git文档将为您提供帮助。

于 2015-02-25T06:13:17.700 回答