Обновление разветвленного хранилища на github

Я разветкил репозиторий из github - он назывался bootstrap.

Я клонировал свою вилку:

git clone https://github.com/Fowowski/bootstrap.git

В проекте начальной загрузки есть главная ветвь и ветвь 3.0.0-wip - плохо работать с 3.0.0-wip

Итак, следующая вещь, которую я делаю (поскольку im на master и ее стабилизатор 2.3.x), переключается на 3.0.0-wip и добавляет удаленный:

git checkout 3.0.0-wip
git remote add upstream https://github.com/twitter/bootstrap.git

и теперь я вношу некоторые изменения в 1 файл... после нескольких дней, когда я закончил, я понял, что в 3.0.0-wip были внесены некоторые изменения, и мой разветвленный репозиторий больше не является актуальным.

Как мне обновить свой разветвленный репозиторий, чтобы сделать его таким же чистым, как это может быть только для того, чтобы нажать его в запросе на pull? Я слышал, что мне нужно делать выборку /rebase.

Я сделал pull через черепаху git один раз, и после того, как я нажал, было несколько коммитов, которые не были моими в моем запросе на тягу... - вы можете увидеть это здесь: https://github.com/twitter/bootstrap/pull/7641#commits-pushed-2eb9053 - Я предполагаю, что я не сделал что-то важное, но не знаю, что именно.

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

git fetch upstream

git merge upstream/master

git push

Моя проблема - и это часть, которую я больше не понимаю о git: git merge upstream/master - я не могу объединить upstream/master, потому что master - bootstrap 2.3.x not 3.0.0-wip? Я пропустил эту команду или что?

Не могли бы вы рассказать мне, как я могу правильно обновить свой разветвленный репозиторий через git bash? Каковы правильные шаги, которые мне нужно выполнить после того, как я изменил файлы в моем клонированном хранилище fork?

Ответ 1

Идея выборки/переадресации хороша, особенно если вы уже не запустили свою работу:

git fetch
# Assuming you are in the right 3.0.0-wip
git rebase upstream/3.0.0.-wip

Вы могли бы сделать это быстрее с pull --rebase:

git pull --rebase upstream

Ответ 2

Мне кажется, что вместо git merge upstream/master вы должны сделать

git merge upstream/3.0.0-wip

(Кстати, как вам посоветовали, возможно, лучше сделать git rebase)