Как лучше всего сотрудничать с git в следующей ситуации? - PullRequest
1 голос
/ 14 апреля 2009

Боб и Алиса получили ssh-доступ к RemoteMachine , они работают вместе с ProjectA. Предположим, у Алисы есть репозитории в ее домашнем каталоге

RemoteMachine/home/alice/ProjectA 

в то время как Сначала Боб будет клонировать репозитории Алисы (возможно, с --bare лучше)

RemoteMachine/home/bob/ProjectA

Боб не будет редактировать ProjectA напрямую в RemoteMachine. Так что, может быть, он хочет клонировать из своего удаленного репоса RemoteMachine/home/bob/ProjectA в LocalMachine (почему бы не отослать клон напрямую от Алисы? Может, Алису захочется вытащить напрямую из RemoteMachine/home/bob/ProjectA).

git clone bob@RemoteMachine:/home/bob/ProjectA LocalMachine/home/bob/PrjA

Мой вопрос:

Какова наилучшая практика для достижения этой цели (см. Ниже)?

  • Я могу редактировать локально и нажать на RemoteMachine / home / bob, возможно, с помощью:

    Local / bob / repos> git push

  • Я могу запустить команду сброса в моем LocalMachine, все еще может отображать значение RemoteMachine/home/bob, которое Алиса может извлечь из

    Local / bob / repos> reset --hard HEAD ^

  • Я могу получить информацию об изменениях Алисы в моем LocalMachine.

Я не знаю, разумны ли эти потребности, поэтому, если вы обнаружите, что это не так, просто предложи свой и объясни почему. Будет полезно, если в этой ситуации вы сможете показать рабочие процессы с помощью команды git.

Ответы [ 2 ]

1 голос
/ 14 апреля 2009

Если вы собираетесь использовать push, обычно лучше иметь 3-й репозиторий, который был клонирован из оригинала с использованием --bare, и чтобы все разработчики подталкивали его туда.

0 голосов
/ 15 апреля 2009

Ваш рабочий процесс звучит разумно для меня. У вас есть Алиса и Боб, каждый из которых имеет свои собственные «разделяемые» репозитории на RemoteMachine, и каждый из них, по-видимому, тянет вниз к LocalMachine для дальнейшей разработки. Когда они заканчивают то, что хотят поделиться, они могут просто перенести это в свой репозиторий на RemoteMachine, где это будет видно другому человеку. Я думаю, что вы упустили одну вещь: другое репо, принадлежащее Куинну в QA. Когда Алиса и / или Боб решают, что что-то достойно производства, они продвигаются к репо Куинн. Квинн затем берет это и проходит его через его строгий набор тестов и тому подобное, и в конечном счете, если это проходит, он выталкивает новый пакет. С другой стороны, Quinn может быть своего рода роботом непрерывной интеграции, таким как Hudson или CruiseControl, или таким, который выполняет этапы автоматического построения и тестирования. Это репо, будь то Quinn или buildbot, также, вероятно, место, где Алиса и Боб синхронизируют свои репо из с тягой - это «канонический» набор кода, против которого все разрабатывают.

Рабочий процесс, который вы обрисовали в общих чертах, хорош. Надеюсь, этот ответ помог.

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