Викинг против ветвления в GitHub

Я хотел бы узнать больше о преимуществах и недостатках разветвления проекта github или создания ветки проекта github.

Forking делает мою версию проекта более изолированной от оригинальной, потому что мне не нужно быть в списке соавторов исходного проекта. Поскольку мы разрабатываем проект в доме, нет никаких проблем с добавлением людей в качестве соавторов. Но мы хотели бы понять, может ли разветвление проекта привести к слиянию изменений в основной проект. То есть, интересно, разветвление упрощает синхронизацию двух проектов. Другими словами, легче ли объединять и менять изменения между моей версией основного проекта и основным проектом при ветке?

Ответ 1

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

Викинг - это не более чем клон на стороне сервера GitHub:

  • без возможности прямого нажатия
  • с очередь fork добавлена ​​для управления запросом на слияние

Вы держите вилку в синхронизации с исходным проектом:

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

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

Цель - действительно разрешить сотрудничество, хотя непосредственное участие не всегда возможно.


Тот факт, что вы клонируете на стороне GitHub, означает, что теперь у вас есть два "центрального" репозитория ( "центральное" как "видимое от нескольких соавторов" ).
Если вы можете добавить их непосредственно в качестве соавтора для одного проекта, вам не нужно управлять другим с помощью вилки.

fork on GitHub

Опыт слияния будет примерно одинаковым, но с дополнительным уровнем косвенности (нажмите сначала на вилку, затем попросите вытащить, с риском развития на исходном репо, что делает ваши быстрые слияния не быстрыми, вперед больше).
Это означает, что правильный рабочий процесс - git pull --rebase upstream (переформатируйте свою работу поверх новых коммитов вверх), а затем git push --force origin, чтобы переписать историю таким образом, что ваши собственные коммиты всегда находятся на вершине коммитов из исходное (восходящее) репо.

См. также:

Ответ 2

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

Общий шаблон выглядит следующим образом:

  • Заставьте исходный репозиторий проектов иметь собственную копию GitHub, после чего вам будет разрешено изменять изменения.
  • Клонировать хранилище GitHub на локальном компьютере.
  • При желании добавьте исходный репозиторий в качестве дополнительного удаленного репозитория в вашем локальном репозитории. Затем вы сможете напрямую получать изменения, опубликованные в этом репозитории.
  • Внесите ваши изменения и свои права совершать локально.
  • Нажмите свои изменения в репозиторий GitHub (так как вы обычно не имеете права на запись в репозитории проекта напрямую).
  • Обратитесь к разработчикам проекта и попросите их получить ваши изменения и просмотреть/слить, а также позволить им вернуться в репозиторий проектов (если вам и им захочется).

Без этого для публичных проектов довольно необычно позволять кому-либо прямо нажимать свои собственные коммиты.

Ответ 3

Вот отличия на высоком уровне:

Разветвление

Pros

  • Сохраняет ветки, разделенные пользователем
  • Уменьшает помехи в основном репозитории
  • Процесс вашей команды отражает процесс внешнего спонсора.

Против

  • Сложнее видеть все ветки, которые активны (или неактивны, если на то пошло)
  • Сотрудничество с веткой сложнее (владелец вилки должен добавить человека в качестве соавтора).
  • Вам нужно понять концепцию нескольких пультов в Git
    • Требуется дополнительная умственная бухгалтерия.
    • Это сделает рабочий процесс более трудным для людей, которые не очень удобны с помощью Git

Ветвление

Pros

  • Сохраняет всю работу над проектом в одном месте.
  • Все соавторы могут нажать на одну ветвь для совместной работы на ней.
  • Только один Git удаленный доступ к

Против

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