Инициализация проекта в качестве Git-репозитория и использование его в качестве мастера для нескольких пользователей. - PullRequest
2 голосов
/ 23 марта 2019

Я заканчиваю назначение курса, и он просит превратить каталог проекта в локальный репозиторий:

так внутри '/ home / Dev / project1':

$ git init

Теперь это репозиторий, но то, что я сделал, чтобы несколько локальных пользователей могли выдвигать и извлекать изменения, - это клонировать это репо на новый голый репо

$ git clone —bare /home/Dev/project1 /home/Dev/project1_central

Так что теперь, когда пользователь входит в систему, он может клонировать голое хранилище

$git clone /home/Dev/project1_central /home/JohnSmith/project1

Внесите изменения и изменения и вернитесь к голому репозиторию, чтобы другие могли извлечь изменения.

Моя проблема в том, что в моем назначении конкретно указано, что /home/Dev/project1 является мастером, и для этого репо выполняются пуш / пуллы. Поэтому я чувствую, что, если я клонирую его в голое репо, я не следую критериям, однако, когда я пытаюсь протолкнуть изменение в не голое репо, я получаю ошибки.

Любой совет?

1 Ответ

2 голосов
/ 23 марта 2019

Хорошо, тогда они вносят некоторые изменения и хотят вернуть изменения в исходное хранилище,
$ git push и $ git push origin master, дайте мне ошибку, говоря, что вещи не будут совпадать, и мне нужно отредактировать файлы конфигурации.

Если удаленное репо /home/Dev/project1 было настроено как голое репо, сообщения об ошибке не будет: git push -u origin master обновит репот (/home/Dev/project1) master ветвь.

Я могу заставить все работать нормально, клонировав репо в голое репо и перейдя оттуда, но, похоже, вопрос о назначении просит нас работать напрямую из репо со всеми файлами

Тогда:

  • сделать регулярное репо в /home/Dev/project1
  • добавить голый / в .gitignore файл
  • клонировать его в подпапку

    git clone --bare . bare
    git remote add origin bare
    
  • попросите своих коллег клонировать ваше /home/Dev/project1 репо, * но добавьте:

    git config set-url --push origin `/home/Dev/project1/bare`
    
  • добавить хук после получения /home/Dev/project1/bare/hooks/post-receive, который будет

    unset GIT_DIR
    cd ..
    git --work-tree=. --git-dir=.git fetch --tags
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...