Для вас открыто множество рабочих процессов git, потому что это гибкий инструмент, но простой рабочий процесс состоит в том, чтобы иметь "главную" ветвь и "развивающуюся" ветвь. Вы можете одновременно выдвигать и извлекать данные из своего репозитория, не разветвляясь на github и без необходимости постоянно отправлять запросы на раздачу Github вашему сотруднику.
Вы можете одновременно выполнять большинство локальных коммитов в ветви разработки, но часто отключаться от удаленной ветви разработки для объединения кода друг друга - на этом этапе вы можете справиться с конфликтами слияния, прежде чем отправлять на удаленный .
Реже, вы можете свернуть мастер и объединить его с разработчиком. Идея состоит в том, что основная ветвь является более стабильной и может быть подготовлена к выпуску в любое время, поэтому на ней не происходит активной разработки. Вот и все.
Если вы хотите пойти дальше, вы можете создать «функциональные ветви» из своей ветви разработки, но принцип тот же - объединить «вверх», чтобы развиваться, и оттуда «вверх», чтобы освоить.
Важно часто синхронизировать (объединять) вашу работу, в противном случае различия в ваших отдельных копиях кодовой базы, вероятно, будут больше, что означает большую вероятность конфликтов. Если у вас по-прежнему возникают конфликты, нажимайте и тяните чаще, чтобы различия были меньше и их легче было обрабатывать.
Конфликты особенно вероятны, если вы оба интенсивно работаете над одними и теми же файлами. В таких случаях иногда бывает полезно организовать и разделить работу на функции, которые изменяют различные части (файлы) кодовой базы, так что вы с меньшей вероятностью наступите друг другу на ноги.
Не забудьте зафиксировать свои локальные изменения перед извлечением, в противном случае изменения будут считаться «промежуточными» и не будут автоматически объединяться во время извлечения. К счастью, git довольно простителен и хорошо справляется с конфликтами слияний.