git перебазировать (?) В апстрим без слияния? - PullRequest
1 голос
/ 05 марта 2020

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

Редактировать: Все перечисленное относится к удаленному. (Ради обсуждения; предположим, что в начале не существует локальных клиентов в любом месте, и как только я закончу, любой созданный локальный клиент будет удален.)

Я создал форк, создал PR, который был объединен с апстримом, и попытался сделать ребаз. Но теперь, когда я смотрю на ветки, которые я намерен продолжать использовать (например, master), они показывают, что это слияние upstream / master и того, что я сделал в своем форке, и что, несмотря на отсутствие изменений, которые не происходят из upstream .

Я хочу, чтобы мастер моей форка при просмотре на GitHub отражал реальность и показывал, что в его истории есть только апстрим / мастер. То есть:

GitHub

Если бы я не возражал потерять остальную часть истории, я мог бы сделать это sh, удалив весь репозиторий и начинать сначала, но это выглядит довольно драматично c для такой рутинной и необходимой операции (и это не сработает вообще , если у меня были другие ветви с текущей работой).

1 Ответ

1 голос
/ 05 марта 2020

Я хочу, чтобы мастер моего форка при просмотре на GitHub отражал реальность и показывал, что в его истории есть только апстрим / мастер

Если я правильно понимаю, это не так. не реальность. История вашего форка начинается с того места, где вы его создали, а не с того места, где находится удаленный мастер. Ваш форк будет работать вечно параллельно с удаленным, с необходимыми слияниями вперед / назад.

Когда я git reset upstream/master ; git push origin master я получаю "Обновления были отклонены, потому что конец вашей текущей ветви находится за его удаленным коллега. "

Короткий ответ: вы можете sh выполнить то, что вы хотите, с помощью git push origin master -f, эффективно уничтожив историю вашего форка и помешав другим людям, которые могут работать на вашем форке ,

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

Мое понимание контекста: crude diagram made in www.draw.io/

Верх - типичный рабочий процесс форка, нижний - рабочий процесс, который вы бы использовали, если бы разрабатывали независимые ветви функций как участник на пульте. Красный - это (абсолютно допустимый) коммит на мастер-форке после слияния с удаленным.

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