Правильный рабочий процесс с использованием git и github - PullRequest
4 голосов
/ 04 января 2011

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

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

Весь процесс кажется более эффективным для него, чтобы каждый раз повторять его, что заставляет меня думать, что мы идем о чем-то неправильно. Должны ли мы использовать ветки вместо вилок? Или, может быть, вилки и ветви?

Спасибо!

Ответы [ 2 ]

1 голос
/ 04 января 2011

Для вас открыто множество рабочих процессов git, потому что это гибкий инструмент, но простой рабочий процесс состоит в том, чтобы иметь "главную" ветвь и "развивающуюся" ветвь. Вы можете одновременно выдвигать и извлекать данные из своего репозитория, не разветвляясь на github и без необходимости постоянно отправлять запросы на раздачу Github вашему сотруднику.

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

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

Если вы хотите пойти дальше, вы можете создать «функциональные ветви» из своей ветви разработки, но принцип тот же - объединить «вверх», чтобы развиваться, и оттуда «вверх», чтобы освоить.

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

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

Не забудьте зафиксировать свои локальные изменения перед извлечением, в противном случае изменения будут считаться «промежуточными» и не будут автоматически объединяться во время извлечения. К счастью, git довольно простителен и хорошо справляется с конфликтами слияний.

1 голос
/ 04 января 2011

Второй разработчик должен сначала вытащить репозиторий GitHub в свое локальное репо, разрешив любой конфликт там.

И затем он может делать запросы на извлечение.fork (что в любом случае не имеет смысла: «fork» - это клон на стороне GitHub)

нет необходимости в дополнительной ветке (если вы оба работаете над одним и тем же набором функций, вы можетеоба работают на 'master', например)

Идея запроса на отправку остается для отправки патчей, которые будут ускоренными (их легко применить к репозиторию GitHub).
И это достигается путем локального разрешения любых конфликтов, прежде чем отправлять запрос на извлечение.


Другие варианты заключаются в том, чтобы объявить второго разработчика в качестве "соавтора" в вашем проекте GitHub (он сможеттолчок напрямую), но это не изменит того факта, что «тянуть первым» необходимо, чтобы толчок был простым.

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