Github: импортировать ветвь вверх по веткам в вилку
У меня есть вилка (origin
) из проекта (upstream
) на github. Теперь проект вверх по течению добавил новую ветку, которую я хочу импортировать в свою вилку. Как это сделать?
Я попытался проверить удаленный и создать ветку поверх этого, но это настраивает ветвь так, как git push
пытается нажать на upstream
:
git checkout upstream/branch
git checkout -b branch
изменить
Может быть, это было неясно, но я хочу добавить ветвь в свой локальный репозиторий, поэтому я могу нажать на origin
(моя вилка) через git push
. Поскольку восходящие репозитории обычно доступны только для чтения, и вы можете его вносить.
Поэтому я в основном хочу проверить несуществующую ветвь на origin
, содержимое которой будет вытащено из upstream
.
Ответы
Ответ 1
-
Убедитесь, что вы добавили новую ветку upstream в локальный репозиторий:
- Во-первых, убедитесь, что ваше рабочее дерево чистое (зафиксировать/спрятать/отменить любые изменения)
- Затем
git fetch upstream
для получения новой ветки upstream
-
Создайте и переключитесь на локальную версию новой ветки upstream ( newbranch
):
-
git checkout -b newbranch upstream/newbranch
-
Когда вы будете готовы выдвинуть новую ветку в начало:
-
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
- Вы можете удалить форк из git.
- Снова разветките восходящий поток, который вернет изменения ветки на ваш форк.
- Затем вы можете выполнить команду
$ git pull
которая получит новые добавленные ветки upstream к вашему локальному с вашего форка.