GIT: рабочий процесс для синхронизации работы с двумя рабочими столами и ноутбуком и центральным репо (общая папка сервера) - PullRequest
1 голос
/ 19 апреля 2019

Я создал центральное хранилище (протокол: файл) и хочу использовать его, чтобы синхронизировать работу, которую я выполняю на своем рабочем ноутбуке и рабочем столе.Я могу выдвигать и извлекать файлы из репозитория, но я не понимаю, как объединить вещи.Насколько я понимаю, после того, как файлы находятся в центральном репо, у каждого компьютера будет локальный мастер / руководитель и удаленный мастер / руководитель.Локальный мастер / руководитель считается веткой пульта, поэтому каждый раз, когда я фиксирую и нажимаю, новая ветка появляется в центральном репо.Вот ссылка, которая показывает, как я создал вышеописанные структуры Работа с GIT4Windows, общей папкой и двумя компьютерами - правильный ли это рабочий процесс?

Я думал, что все готово, и я планировал начатьработа позже (сегодня «позже»), и сегодня я понял, что упустил некоторые аспекты.

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

Что произойдет, если третья сторона захочет получить доступ к центральному репо?Это будет сбивать с толку, когда репо клонируется, пользователь получает источник / мастер и две ветви, одну для настольного компьютера, для ноутбука.

Какой рабочий процесс объединяет две ветви в центральном репо?Это правильный способ работы с этой настройкой?

1 Ответ

1 голос
/ 19 апреля 2019

Кажется, что есть некоторые небольшие заблуждения, поэтому давайте попробуем разобраться с ними:

Насколько я понимаю, после того, как файлы находятся в центральном репо, у каждого компьютера будет локальный мастер /голова и удаленный мастер / голова.

Оба хранилища должны иметь ветку master, правильно.head не имеет ничего общего со всем этим, я думаю, вы неправильно используете этот термин.

Локальный мастер / руководитель считается веткой удаленного, поэтому каждый раз, когда я фиксирую и нажимаюв центральном репо появляется новая ветвь.

Локальный мастер - это локальная ветвь.Это отслеживание удаленного мастера, да, но это две разные ветви.Отслеживание означает , что эта ветвь будет тянуться от X и толкаться к X , однако они все еще являются двумя ветвями, которые могут развиваться независимо.Меня особенно смущает ваше утверждение a new branch shows up in the central repo, потому что когда вы переходите от мастера к мастеру, тогда новая ветвь не появляется, мастер уже существует.Тем не менее, несколько новых коммитов отображаются на главном компьютере.

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

Что произойдет, если третья сторона захочет получить доступ к центральному репо?Это будет сбивать с толку, когда клонируется репо, пользователь получает источник / мастер и две ветви, одну для настольного компьютера, для ноутбука.

Вам не хватает важного шага в вашем рабочем процессе,сращивание.Существуют разные рабочие процессы для git, однако они в значительной степени разделяют один истинный факт: существует одна-единственная ветвь, в которой собраны все изменения, возможно, объединенные из функциональной ветки.Хотя работать с мастером напрямую не так.Поскольку, опять же, ваш локальный мастер и удаленный мастер технически являются двумя ветвями, вы можете работать с вашим локальным мастером напрямую, и когда вы будете готовы "освободить" свой код, нажмите на удаленный.Возможно, вам придется сначала потянуть, чтобы получить новые коммиты, которые вы еще не получили, но это работает.Теперь вы можете, конечно, работать в разных отраслях.В некоторых рабочих процессах git рекомендуется использовать одну ветвь для каждой функции (в этой модели работают запросы на получение запросов GitHub) или одну ветвь для каждого компьютера или разработчика.Но время от времени вам нужно собирать все эти изменения, сделанные в разных ветках, и помещать их в одну ветку, обычно ведущую, что означает, что вам нужно объединить свои изменения с основной.Когда и как решать вам.Обычно, кто-то некоторое время работал над веткой разработки, пока функция не стабилизировалась и работала, а затем сливался.В этом случае master всегда будет содержать стабильное программное обеспечение, а ветки разработки содержат еще не законченные функции.

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