Рабочий процесс, рекомендуемый Git

Уже несколько месяцев я использую git в проекте, разработанном только мной. У меня есть локальный репозиторий, и я регулярно отправляю его на github для резервного копирования.

Я хочу добавить еще одного разработчика в этот проект, однако я буду нести ответственность за интеграцию всего проекта.

Какой рекомендуемый рабочий процесс?

Нужны ли нам частные и публичные репозитории для каждого разработчика?

Если репозиторий github является основным, должен ли другой разработчик клонировать этот репозиторий или репозиторий на моем компьютере?

Должен ли он иметь право вставлять в мой репозиторий или я должен извлекать из его репозитория?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
0
823
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Git ориентирован на тянущий, а не на push. В идеале другой разработчик должен клонировать ваш репозиторий общественный на Github; затем, когда он закончит свои изменения, вы либо возьмете из репозитория, который он предоставляет вам, либо интегрируете его изменения с исправлениями, которые он отправит вам по электронной почте. В любом случае, вы должны внести изменения в репозиторий частныйна твоем компьютере, исправить любые ошибки, возникшие в результате слияния, а затем отправить его изменения в ваше публичное репо (на Github).

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

Как будет выглядеть привлекательность репо с партнерами? Будет ли команда выглядеть примерно так: git pull git://127.128.0.1/partner_user_name/project.git?

spinlock 07.04.2011 22:15

@spinlock: Да. Или он мог бы добавить именованный пульт, используя такой URL-адрес, а затем использовать git pull <named remote>.

mipadi 07.04.2011 22:17

Он может создать свой собственный форк вашего репозитория github, и когда он почувствует, что готов к интеграции, он может отправить вам запросы на вытягивание (где у вас есть общедоступный URL-адрес его репозитория в качестве удаленного) или он может отправить вам наборы git format-patch.

Обычно при таком рабочем процессе ответственность за то, чтобы его патчи корректно применялись к вашему общедоступному мастеру, в значительной степени лежит на нем.

Небольшой совет ... убедитесь, что вы оба понимаете, какие операции git перезапишут историю. Сброс указателей веток, перебазирование, добавление коммитов и т. д. Перезапишет историю, что нормально, но только для частных веток. Для веток, которыми вы делитесь (отправляете или извлекаете), вам следует избегать перезаписи истории.

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

Другие вопросы по теме