Как я могу поделиться рабочим репозиторием с другим пользователем (push/pull)?

Я клонировал Git-репозиторий из Assembla, выполнив:

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'

2 ответа

Решение

Это похоже на проблему, которая у меня когда-то была:

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

Я читал, что это происходит, потому что ветвь находится в не голом состоянии. Если кто-то подтолкнет к этой ветви, он перезапишет существующее состояние извлеченной копии.

Общее решение состоит в том, чтобы использовать пустой репозиторий, который выполняется:

git init --bare

другая возможность - использовать ветки

git push не работает: `отказывается обновлять проверенную ветку: refs/heads/master` также дал мне отличную информацию о том, как ее решить!

Удачи!:)

детеныш

Вы должны настроить удаленное репо, если вы собираетесь сотрудничать или даже делиться между несколькими компьютерами. Обычно люди используют такие сервисы, как Github или Unfuddle для размещения удаленных репозиториев. Тем не менее, вы также можете настроить свой собственный. Официальная документация Git поможет вам.

Другие вопросы по тегам