Извлеките новые обновления из исходного репозитория GitHub в разветвленный репозиторий GitHub

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

Как я могу вытащить изменения, которые были сделаны в origin и включить их в свой репозиторий?

5 ответов


вы должны добавить исходный репозиторий (тот, который вы раздвоили) в качестве удаленного.

С GitHub вилка man page:

fork

Как только клон будет завершен, ваше РЕПО будет иметь пульт с именем"origin " это указывает на вашу вилку на GitHub.
Не позволяйте имени запутать вас,это не указывает на оригинальное РЕПО, из которого вы раздвоились. Чтобы помочь вам отслеживать это РЕПО, мы добавим еще один удаленный с именем "вверх по течению":

$ cd github-services
$ git remote add upstream git://github.com/pjhyett/github-services.git
$ git fetch upstream

# then: (like "git pull" which is fetch + merge)
$ git merge upstream/master master

# or, better, replay your local work on top of the fetched branch
# like a "git pull --rebase"
$ git rebase upstream/master

и ruby gem, который может облегчить эти операции GitHub.

forked

Смотрите также на "git fork-это клон git?".


В дополнение к ответу VonC, вы можете настроить его по своему вкусу еще больше.

после извлечения из удаленной ветви вам все равно придется объединить коммиты. Я бы заменил

$ git fetch upstream

С

$ git pull upstream master

так как git pull по существу git fetch + git merge.


этой видео показывает как обновить вилку непосредственно из GitHub

действия:

  1. откройте вилку на GitHub.
  2. нажать на кнопку Pull Requests.
  3. нажать на кнопку New Pull Request. По умолчанию GitHub будет сравнивать оригинал с вашей вилкой, и сравнивать нечего, если вы не внесли никаких изменений.
  4. нажать на кнопку switching the base. Теперь GitHub сравнит вашу вилку с оригиналом, и вы должны смотрите все последние изменения.
  5. нажать на кнопку Create a pull request для этого сравнения и назначьте предсказуемое имя вашему запросу pull (например, Update from original).
  6. нажать на кнопку Create pull request.
  7. прокрутите вниз и нажмите на кнопку Merge pull request и наконец Confirm слияние. Если в вашей вилке не было никаких изменений, вы сможете объединить ее автоматически.

использование:

git remote add upstream ORIGINAL_REPOSITORY_URL

это установит ваш восходящий поток в репозиторий, из которого вы раздвоились. После этого:

git fetch upstream      

это приведет к извлечению всех ветвей, включая master из исходного репозитория.

объединить эти данные в вашу локальную ветку master:

git merge upstream/master

нажмите изменения в свой раздвоенный репозиторий, т. е. в origin:

git push origin master

вуаля! Синхронизация исходного репозитория завершена.


Если вы используете настольное приложение GitHub, в правом верхнем углу есть кнопка синхронизации. Нажмите на него тогда Update from <original repo> слева вверху.

если нет изменений для синхронизации, это будет неактивно.

здесь скриншоты сделать это легко.