Как убрать sh старых коммитов, полученных в результате интеграции другого репо в ветку? - PullRequest
0 голосов
/ 07 мая 2020

Я работаю над объединением двух репозиториев в один репозиторий.

Я интегрировал repo2 в ветку repo1 , сохранив всю историю repo2 . После этого я сделал дополнительные коммиты, чтобы завершить интеграцию кода.

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

Коммиты, которые были добавлены в новую ветку, выглядят следующим образом:

680a4b3  Integration          2 days ago
...
985d7ac  Integration          6 days ago    
23d3762  Latest repo2 commit  2020‑04‑20
...
23df1e4  First repo2 commit   2019‑05‑01

Когда я пытаюсь выполнить интерактивную перебазировку, возвращаясь к первому repo2 commit:

git rebase 23df1e4 ---interactive

Список коммитов включает коммиты, исходящие от обоих репо1 и репо2 . Их выбор вручную занял бы слишком много времени.

Есть ли способ исправить sh (или выполнить исправление, отбросив сообщения), все repo2 фиксируются автоматически, но с сохранением «Интеграции» "ones?

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

Заранее большое спасибо.

1 Ответ

0 голосов
/ 07 мая 2020

Вот способ возвести sh начало истории:

  1. запустить rebase -i начиная с родительского элемента «Последний коммит repo2»:

    git rebase -i 23d3762^
    
  2. в действиях установите действие фиксации 23d3762 Latest repo2 commit на edit, сохраните и закройте
    git будет перематываться на 23d3762 и ждать, пока вы примете меры

  3. squa sh история репо2:

    # use 'reset --soft' to go back to First commit,
    # while keeping the complete delta in the staging area :
    git reset --soft 23df1e4   # <- use id of "First commit" here
    git commit
    
  4. скажите git, чтобы завершить интерактивную перебазировку

    git rebase --continue
    
...