Как выбрать из одного пульта и протолкнуть в другой - PullRequest
0 голосов
/ 15 марта 2019

Я разрабатываю решение Virtual Assistant для использования в моей организации. Я клонировал репозиторий Microsoft AI из GitHub.

Репо AI регулярно обновляется новыми функциями, которыми я хочу воспользоваться.

Вот чего я хочу достичь:

  1. Наличие локального репо (AI), на который я получаю удаленные коммиты с Происхождение / мастер (AI)
  2. Я хочу иметь возможность настроить код в соответствии с нашими потребностями (например, добавить пользовательские навыки и / или локализация контента)
  3. Я хочу иметь возможность отправить код и изменения в другое удаленное хранилище (" MyOwnRemoteRepo ")
  4. Тогда, когда из репозитория AI будут получены новые коммиты, я хочу быть возможность объединить их с моим настроенным кодом и зафиксировать в MyOwnRemoteRepo repo.

Итак:

  1. Клонировать репозиторий AI ( AI ) до локального мастера
  2. Извлечь изменения из AI ( origin / master-> local master )
  3. Сделать изменения на локальный мастер
  4. Push изменения локального мастера на MyOwnRemoteRepo ( origin / master )
  5. Вернуться к шагу 2

Я пытался найти Git-стратегию для этой ситуации, но я не нашел хорошего предложения о том, как это сделать.

Есть предложения?

Ответы [ 2 ]

1 голос
/ 15 марта 2019

Возможно, запутанным аспектом разветвления является термин «происхождение». Когда репо клонируется, у него есть удаленный по умолчанию источник под названием origin, который указывает на ваш форк на GitHub, а не на исходный репо, из которого он был разветвлен. Чтобы отслеживать исходное хранилище, вам нужно добавить еще один пульт, обычно называемый «upstream:»

git remote add upstream git://github.com/user/repo.git

Ваш процесс становится понятным: вы выбираете из апстрима и толкаете / выталкиваете в начало координат. Когда все настроено, 'git remote -v` покажет что-то вроде этого:

`origin https://github.com/you_repo/AI.git (fetch)
 origin https://github.com/you_repo/AI.git (push)
 upstream   https://github.com/Microsoft/AI.git (fetch)
 upstream   https://github.com/Microsoft/AI.git (push)`

См. Другие более подробные ответы по этой и смежным темам: В чем разница между origin и upstream на GitHub? и Определение понятий "downstream" и "upstream"

1 голос
/ 15 марта 2019

Самый простой способ сделать это - это форк , иногда это не то, что вам нужно.Что я делаю в этой ситуации:

Создание моего репо (в GitHub, GitLab и т. Д.) С помощью README

Клонирование моего репо локально

Добавление удаленного репо в репоЯ хочу код от (я обычно называю это апстрим)

git remote add upstream git@github.com/whatever

Извлечение с пульта

git pull upstream master

Push to my repo

git push origin master

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