Кажется, что есть некоторые небольшие заблуждения, поэтому давайте попробуем разобраться с ними:
Насколько я понимаю, после того, как файлы находятся в центральном репо, у каждого компьютера будет локальный мастер /голова и удаленный мастер / голова.
Оба хранилища должны иметь ветку master
, правильно.head
не имеет ничего общего со всем этим, я думаю, вы неправильно используете этот термин.
Локальный мастер / руководитель считается веткой удаленного, поэтому каждый раз, когда я фиксирую и нажимаюв центральном репо появляется новая ветвь.
Локальный мастер - это локальная ветвь.Это отслеживание удаленного мастера, да, но это две разные ветви.Отслеживание означает , что эта ветвь будет тянуться от X и толкаться к X , однако они все еще являются двумя ветвями, которые могут развиваться независимо.Меня особенно смущает ваше утверждение a new branch shows up in the central repo
, потому что когда вы переходите от мастера к мастеру, тогда новая ветвь не появляется, мастер уже существует.Тем не менее, несколько новых коммитов отображаются на главном компьютере.
Рассмотрим следующую ситуацию: -новый модуль / функция был создан на ноутбуке -новый новый модуль / функция был создан на настольном компьютере-каждый компьютер нажимает на негоизменения в центральном репо - теперь каждый компьютер может проверить новый модуль другого компьютера и объединить его с локальным мастером, и два компьютера синхронизируются, но центральное репо имеет только две ветви (ноутбук один и настольный компьютер).
Что произойдет, если третья сторона захочет получить доступ к центральному репо?Это будет сбивать с толку, когда клонируется репо, пользователь получает источник / мастер и две ветви, одну для настольного компьютера, для ноутбука.
Вам не хватает важного шага в вашем рабочем процессе,сращивание.Существуют разные рабочие процессы для git, однако они в значительной степени разделяют один истинный факт: существует одна-единственная ветвь, в которой собраны все изменения, возможно, объединенные из функциональной ветки.Хотя работать с мастером напрямую не так.Поскольку, опять же, ваш локальный мастер и удаленный мастер технически являются двумя ветвями, вы можете работать с вашим локальным мастером напрямую, и когда вы будете готовы "освободить" свой код, нажмите на удаленный.Возможно, вам придется сначала потянуть, чтобы получить новые коммиты, которые вы еще не получили, но это работает.Теперь вы можете, конечно, работать в разных отраслях.В некоторых рабочих процессах git рекомендуется использовать одну ветвь для каждой функции (в этой модели работают запросы на получение запросов GitHub) или одну ветвь для каждого компьютера или разработчика.Но время от времени вам нужно собирать все эти изменения, сделанные в разных ветках, и помещать их в одну ветку, обычно ведущую, что означает, что вам нужно объединить свои изменения с основной.Когда и как решать вам.Обычно, кто-то некоторое время работал над веткой разработки, пока функция не стабилизировалась и работала, а затем сливался.В этом случае master всегда будет содержать стабильное программное обеспечение, а ветки разработки содержат еще не законченные функции.