За исключением только последнего коммита удалить все предыдущие коммиты - PullRequest
0 голосов
/ 08 июля 2019

Я новичок в Git.Я хочу удалить все предыдущие коммиты, кроме последнего, из ветви TAI-18 и хочу выдвинуть только последний из них для запроса извлечения для объединения с мастером.

Например:

commit_c
commit_b
commit_a

Где commit_a - начальный коммит, кроме commit_c. Я хочу удалить все коммиты, такие как commit_b и commit_a

Кто-нибудь может мне помочь?

Ответы [ 2 ]

1 голос
/ 08 июля 2019

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

git checkout commit_c    #Checkout latest commit on your branch
git checkout --orphan new_branch_name
git commit

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

git branch -f original_branch_name

Для обновленного вопроса:

Похоже, что вы ищетесквош-слияние:

git checkout master
git merge --squash TAI-18

Это примет все изменения, внесенные в ветку TAI-18, и создаст коммит в главной ветке, который содержит все эти изменения.

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

1 голос
/ 08 июля 2019

Имея коммиты:

commit_c
commit_b
commit_a
commit_0

do git rebase -i commit_0, вы увидите интерфейс vi (или как он настроен):

pick abc1234 commit_c message
pick bcd3455 commit_b message
...

change (нажмите i * 1009)* для вставки действия) pick к одному из delete / d / #, который вы хотите удалить.Он будет удален навсегда со всеми своими изменениями.

ОБНОВЛЕНИЕ поскольку вы говорите, что хотите сохранить изменения, просто используйте один коммит, затем вы можете заменить pick на squash / s (кроме commit_c).Он переместит все, что изменилось с этого коммита на предыдущий.


Если ваш commit_a является начальным коммитом, просто сбросьте все коммиты и повторите свою историю

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