Получить из апстрима и отменить все коммиты, которые у меня есть - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть ветвь вышестоящего проекта, который должен быть полностью выровнен с исходным кодом в вышестоящем.Я выпустил

git fetch upstream

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

git checkout master
git rebase upstream/master

это правильно?какой-нибудь более простой способ сделать origin = upstream , уничтожив любой коммит, который я сделал в своем форке?(Точно так же, как я разветвлял сейчас проект upstream) Спасибо

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

(1) Найти ближайший коммит точки форка

git merge-base upstream/master origin/master

Например, результат будет 55c16639a7a7a8c474b9aa448ab112086738de6f или для короткого 55c1663

(2) Сброс источника источника на 55c1663

git reset --hard 55c1663

(3) Выборка и объединение

git fetch upstream
git checkout master
git merge upstream/master --no-ff

Подробнее на https://help.github.com/articles/syncing-a-fork/

0 голосов
/ 03 декабря 2018

Попробуйте эту команду:

git branch --create-reflog -f master -t upstream/master

Убедитесь, что вы не ведущий (вы находитесь в другой ветке), или это не удастся.

Если вы ведущий,Вы можете использовать reset:

git reset --hard upstream/master

Если у вас есть незафиксированные изменения, обязательно наберите git stash, иначе они будут потеряны.Вы можете сделать git stash pop после выполнения аппаратного сброса, чтобы восстановить ваши незафиксированные изменения.

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