Git, как сменить голое на репо? - PullRequest
31 голосов
/ 16 января 2012

Итак, вот как я настроил свой проект:

git init --bare

Позже я узнал, что если вы хотите работать над проектом с несколькими пользователями, это то, как я должен был это сделать:

git init --bare --shared

Теперь я попытался работать так, и, к счастью, мы в начале, чтобы я мог снова настроить git.Я все еще удивляюсь, хотя, когда вы находитесь в середине проекта, вы не можете этого сделать.Есть ли способ, которым я могу изменить голое репо на общее?

Ответы [ 4 ]

40 голосов
/ 16 января 2012

Поскольку опция --shared просто устанавливает разрешения для всего в репозитории на групповую запись, вы можете сделать это вручную позже:

$ chmod -R g+w the/repo/path

Плюс, добавить

sharedrepository = 1

в разделе [core] в .git/config. Совместно используемые репозитории также имеют следующую опцию получения , определенную по умолчанию (которую вы можете или не можете хотеть):

[receive]
    denyNonFastforwards = true

Примечание: чтобы решить, хотите ли вы denyNonFastforwards: эта опция означает, что слияние никогда не происходит в общем хранилище, что, в свою очередь, означает, что в общем хранилище никогда не будет конфликта слияния. Вместо этого push отклоняется, заставляя пользователя выполнить слияние в своем локальном репозитории, где его гораздо легче исправить, и где это не мешает другим людям использовать общий репозиторий.

5 голосов
/ 14 февраля 2014

Возможно, если вы попытаетесь открыть общий доступ к существующему репозиторию, у вас может быть много коммитов разных пользователей.

1. Если у вас есть разрешение суперпользователя, вы можете перейти вперед и изменить все разрешения самостоятельно, выполнив шагво-вторых, в любом другом случае вам нужно будет спросить всех пользователей с объектами, созданными вместе с их пользователями, чтобы узнать, кто они такие, используйте следующую команду:

$ ls -la | awk '{print $3}' | sort -u 
<your user_name>
<his user_name>

2. Теперь вы и все владельцы файлов будутнеобходимо изменить разрешение этих файлов, выполнив:

$ chmod -R 774 .

3. После этого вам нужно будет добавить новое свойство, эквивалентное --shared = group для нового репозитория, согласно документации,это делает репозиторий доступным для записи группой, выполняя это:

$ git config core.sharedRepository group
5 голосов
/ 16 января 2012

Помимо chmod -R g + w, вам также нужно отредактировать (.git/)config и установить core.sharedRepository = ....Для ... есть несколько значений, описанных в git-init (1).

3 голосов
/ 16 января 2012

Если вы пытаетесь открыть общий доступ к хранилищу на том хосте, на котором он находится, необходимо выполнить дополнительные шаги по настройке (ssh stuff).

http://shapeshed.com/setting_up_git_for_multiple_developers/

http://www.jedi.be/blog/2009/05/06/8-ways-to-share-your-git-repository/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...