Следующие шаги с Git: создание единого рабочего процесса - PullRequest
5 голосов
/ 31 октября 2009

Я новичок в git и распределенном управлении версиями, но мне удалось, без особых затруднений, init мой собственный локальный источник, настроить частный удаленный репозиторий (origin) через ssh на моем собственном веб-хосте и выполнить основные pull и push от мастера к источнику. (Я даже тестирую клона!)

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

Я надеюсь, что опытный пользователь git сможет немного разобраться в моем рабочем процессе и дать несколько советов о том, как он будет обрабатывать слияния, ветки и т. Д. (Вещи, с которыми я пока не слишком знаком / не знаком).

Вот различные машины / места, которые у меня будут:

  1. Удаленный главный git store: ssh: //git@example.com/git/myproject.git
  2. Домашний веб-сервер, основной блок разработки (где я сижу, наедине и выполняю большую часть работы)
  3. Удаленный веб-сервер, бета-тестирование (общедоступное): http://beta.example.com (протестировать мою работу разработчика перед началом производства)
  4. Удаленный веб-сервер, производственный сайт: http://example.com (где, как мы надеемся, реальные люди используют сайт)
  5. (изредка) путешествует на ноутбуке (работает собственный локальный веб-сервер).

Как бы вы справились с этим? Заранее спасибо.

Ответы [ 3 ]

5 голосов
/ 02 ноября 2009

Я не вижу смысла в создании чрезмерно сложного рабочего процесса, «центральная» установка подойдет ИМХО.

так что у вас есть главный пульт, который должен быть вашей центральной точкой, который содержит всю разработку, имя пульта «происхождение». вы работаете над своей коробкой devel, делаете свои коммиты и время от времени толкаете свои вещи в «источник». как только вы думаете, что пришло время для выпуска, вы помечаете свои материалы (вероятно, как бета), отправляете их в исходное положение, переходите на свой бета-сервер и извлекаете этот тег для публичного тестирования. повторяйте до тех пор, пока у вас не будет релиза, который вы можете загрузить на свою производственную машину ...

относительно вашего вопроса об А / Б (возможно, о вашей машине и ноутбуке devel): конечно, это можно сделать, но не просто подтолкнуть ваши изменения от А или В к источнику. Допустим, вы только что перевели свою работу на машине А в «начало», давайте назовем это состояние «17». Теперь ваша работа продолжается, создавая местные штаты с «18» по «20». Если значение «origin» по-прежнему равно «17», вы можете без проблем подтолкнуть изменения 18-20 к origin, поскольку каждый шаг является прямым потомком предыдущего состояния. это называется "перемотка вперед" в git.

Однако, если между B наступает толчок от B, то линия «прямых потомков» нарушается, и толчок от A терпит неудачу. Решение простое, однако: A должен извлечь из источника, объединяя все изменения, внесенные B, в A, и затем он может нажать ...

надеюсь, что проясняет вещи ..

2 голосов
/ 01 ноября 2009

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

1 голос
/ 04 ноября 2009

Да, он может обработать изменение от A, другое от B, нажав оба. Тем не менее, один из двух должен будет вытащить из источника, прежде чем он может толкнуть. Потому что один из двух будет «устаревшим» с происхождением, потому что другой подтолкнул к происхождению.

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