Github: импортировать ветвь вверх по веткам в вилку

У меня есть вилка (origin) из проекта (upstream) на github. Теперь проект вверх по течению добавил новую ветку, которую я хочу импортировать в свою вилку. Как это сделать?

Я попытался проверить удаленный и создать ветку поверх этого, но это настраивает ветвь так, как git push пытается нажать на upstream:

git checkout upstream/branch
git checkout -b branch

изменить

Может быть, это было неясно, но я хочу добавить ветвь в свой локальный репозиторий, поэтому я могу нажать на origin (моя вилка) через git push. Поскольку восходящие репозитории обычно доступны только для чтения, и вы можете его вносить.

Поэтому я в основном хочу проверить несуществующую ветвь на origin, содержимое которой будет вытащено из upstream.

Ответ 1

  1. Убедитесь, что вы добавили новую ветку upstream в локальный репозиторий:

    • Во-первых, убедитесь, что ваше рабочее дерево чистое (зафиксировать/спрятать/отменить любые изменения)
    • Затем git fetch upstream для получения новой ветки upstream
  2. Создайте и переключитесь на локальную версию новой ветки upstream ( newbranch):

    • git checkout -b newbranch upstream/newbranch
  3. Когда вы будете готовы выдвинуть новую ветку в начало:

    • git push -u origin newbranch

Переключатель -u устанавливает отслеживание для указанного удаленного (в данном примере, origin)

Ответ 2

Я бы использовал

git checkout -b <new_branch> upstream/<new_branch>

Ответ 3

У меня тоже были проблемы с этим, и Google взял меня сюда. Однако решения не работали. Моя проблема заключалась в том, что когда я добавил свой поток вверх, он настроил мой конфигуратор git только для того, чтобы получать только мастер, а не все ветки. например Это выглядело так:

[remote "somebody"]
        url = [email protected]:somebodys/repo.git
        fetch = +refs/heads/master:refs/remotes/upstream/master

Редактирование .git/config следующим образом исправлено моя проблема

[remote "somebody"]
        url = [email protected]:somebodys/repo.git
        fetch = +refs/heads/*:refs/remotes/upstream/*

Ответ 4

--track?

git branch --track branch upstream/branch

Ответ 5

Следующие шаги работали хорошо для меня (предполагая, что ветвь с именем upstream называется branch):

$ git fetch upstream
$ git checkout branch
$ git push origin

Ответ 6

  1. Вы можете удалить форк из git.
  2. Снова разветките восходящий поток, который вернет изменения ветки на ваш форк.
  3. Затем вы можете выполнить команду $ git pull которая получит новые добавленные ветки upstream к вашему локальному с вашего форка.