Можно ли создать форк репозитория, который может использовать целая команда (в отличие от персонального форка)? - PullRequest
0 голосов
/ 26 января 2019

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

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

1 Ответ

0 голосов
/ 26 января 2019

Короткая версия

# Display url remote
$ git remote -v
# Add remote
$ git remote add upstream https://github.com/ <URLRepoOrigin> 
## - Where upstream is the name of the remote

# Bring changes from the main fork
$ git pull upstream master 
## - Where master is the name of the branch from where we want to bring the changes from the Origin Repository and the name of the remote is upstream

# Upload them to our fork
$ git push origin master 
## - Where master is the name of the branch to which we want to upload the changes of our Fork Repository and the name of the remote is origin


Расширенная версия

Поддерживайте синхронизацию вилки с upstream в git

Предположим, что мы имеемсоздал ветвь проекта в [GitHub] (https://github.com/) ( с именем https://github.com/MyRepoFork/app.git), и мы хотим, чтобы он обновлялся последними коммитами из оригинала (с именем https://github.com/MyRepoOrigin/app.git) и обычно называется upstream .

Процесс клонирования репозитория Forkeado

Далее мы будем исходить из нашего клонированного и подделанногорепозиторий.

Зная, что из локальной рабочей копии вы можете соединить и синхронизировать ( дорожка ) с одним или несколькими удаленные репозитории , помните, что когда клонирует репозиторий , по умолчанию он подключается к репозиторию, из которого он был клонирован ( в нашем случае forkeado ):

$ git remote -v
origin https://github.com/MyRepoFork/app.git (fetch)
origin https://github.com/MyRepoFork/app.git (push)

Каждый remote repository имеет ассоциированное имя . Исходный репозиторий , из которого была клонирована рабочая копия , по умолчанию называется origin.

Клонировав из нашего репозитория, мы можем сделать коммиты на вилке .

Обновите MyRepoFork с MyRepoOrigin

Добавление remote

Теперь, чтобы можно было обновить изменения, внесенные вИсходный проект в нашем форке **, необходимо добавить удаленный репозиторий ** ( connect ) в нашей локальной рабочей копии (MyRepoFork) .

Для этого мы свяжем его с URL-адресом и именем, которое мы дадим нашему удаленному хранилищу, командой git remote:

$ git remote add upstream https://github.com/MyRepoOrigin/app.git

Условно имя upstreamиспользуется для именования репозитория, соответствующего проекту, который мы создали:

$ git remote -v
origin https://github.com/MyRepoFork/app.git (fetch)
origin https://github.com/MyRepoFork/app.git (push)
upstream https://github.com/MyRepoOrigin/app.git (fetch)
upstream https://github.com/MyRepoOrigin/app.git (push)

Таким образом origin соответствует репозиторию, принадлежащему нашему форку (MyRepoFork), иupstream соответствует хранилищу, принадлежащему исходному проекту (MyRepoOrigin).

Обновление выполняется pull

Наконец, чтобы принести последние обновления из upstream и, таким образом, держать наш ветвь обновленным , запустить git pull в репозитории upstream и master ветви( ветвь по умолчанию или укажите другую ветвь другой разработки ):

$ git pull upstream master

Переход к нашему репо

Тогда это возможно чтобы загрузить эти изменения на наш форк , выполнив push:

$ git push origin master

Дополнительная информация

Для получения дополнительной информации посетите следующие страницы руководства:

man git-clone
man git-remote
man git-pull
man git-commit
man git-push

Ссылки

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