Многоуровневые клоны с Git? - PullRequest
0 голосов
/ 20 апреля 2010

Итак, я думаю о следующей централизованной установке с Git (каждый из них является клоном):

stable
  development
    developer1
    developer2
    developer3

Итак, я создал свой стабильный репозиторий

git --bare init

сделал клон 'development'

git clone ssh://host.name//path/to/stable/project.git development

и сделал клон «разработчика»

git clone ssh://host.name//path/to/development/project.git developer

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

git commit --all
git push

и изменение переходит к клону разработки.

Но теперь, когда я ssh на сервер, захожу в каталог клонов разработки и запускаю "git fetch" или "get pull", я не вижу изменений.

Так что мне делать? Я полностью неправильно понимаю вещи и делаю вещи неправильно? Как я могу увидеть изменения в клоне «разработка», которые я вытолкнул из своего клона «разработчик»? Это хорошо работало в Mercurial.

1 Ответ

4 голосов
/ 20 апреля 2010

Я думаю, что вы путаете терминологию и / или методологию между Git и Mercurial.Я думаю, что вы ищете, это просто стандартный рабочий процесс для вашей команды.Один репозиторий, несколько веток с подразумеваемой иерархией.

Это должно помочь:

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


В качестве продолжения этой последней ссылки вы можете взглянуть на gitflow , aРасширение git, которое предоставляет простой API для предложенной им модели.


И, наконец, для решения проблем, с которыми вы сталкиваетесь в своем первоначальном посте, несколько клонов получают точно такую ​​же информацию, но в каталогах с разными именами.Каждый разработчик должен клонировать копию репозитория, сделать коммиты в ветке разработки, а затем объединить и перенести эти изменения в централизованно размещенный репозиторий.Затем, когда вы будете готовы, попросите одного разработчика объединить ветку разработки в стабильную и передать ее в централизованно размещенный репозиторий.

Что касается того, почему ваши изменения не отражаются, это потому, что у вас, вероятно, имеется полный клонрепозитория на вашем сервере, а не пустой репозиторий.Пустой репозиторий не показывает ни один из исходных файлов, только внутренности git.Вы не должны делать какие-либо операции с Git в этом каталоге.Вся работа должна быть сделана на клонированных версиях.

Это все, вероятно, кажется безумно сложным для того, кто плохо знаком с git и переключается с другой DVCS с другими методами.Я настоятельно рекомендую изначально использовать бесплатный хостинг, такой как GitHub .На GitHub существуют различные руководства , которые помогают как с использованием git, так и с GitHub, плюс вы получите хороший веб-интерфейс.

...