Как переместить некоторые опубликованные коммиты, включая слияние с веткой, и объединить их позже - PullRequest
0 голосов
/ 29 июня 2018

У меня есть история, которая выглядит так:

A-B-C-----------M-I-J-K-L
     \         /
      D-E-F-G-H

мастер в данный момент указывает на L. Это уже было перенесено в источник.

Я хочу создать новую ветвь, содержащую D в L и ведущую (в исходной точке), указывающую на C, или регистрацию, соответствующую C. Мне нужно убедиться, что все, что сделали другие клоны, не сломано. Затем в какой-то более поздний момент я хочу слить D с L обратно в master и нажать на origin.

Я смотрел на использование revert, но, похоже, это повлияет на то, что будет объединено позже. Есть ли способ сделать это, я в замешательстве.

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

Итак, вот что я сделал, я не знаю, является ли это лучшим решением:

  1. На мастере я удостоверился, что в моем рабочем дереве не было никаких выдающихся изменений.
  2. Я использовал xcopy, чтобы получить копию всего рабочего дерева.
  3. Я использовал git revert для создания изменений, которые отменяют все изменения, которые я не хочу вносить в master.
  4. Я нажал возвратные коммиты
  5. Я создал и извлек ветку с последнего коммита.
  6. Я скопировал все файлы из резервной копии.

Это оставляет мне одну регистрацию в моей ветке, которая делает все изменения. Возможно, он теряет часть истории, но я думаю, что позже он будет корректно сливаться.

0 голосов
/ 29 июня 2018

Начните с создания новой ветви из L, чтобы у вас была ссылка

git checkout master
git checkout -b thisIsL

Теперь измените master, чтобы он указывал на конкретный коммит deadbeef при отсутствии лучшего шестнадцатеричного значения

git branch -f master deadbeef
git push --force origin master

(см. этот ответ .)

НО это может привести к поломке любых других клонов с вашего пульта (в любое время rebase или флаг -force используется с принудительными коммитами, это может быть дело). Поэтому начните с того, что все остальные совершат все и будут готовы начать с нового клона (если он в конечном итоге будет нуждаться в этом).

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