Выбор только диапазона коммитов при слиянии с другой веткой в ​​git - PullRequest
0 голосов
/ 11 июня 2019

ветвь функции 1

1
2
3 - this commit changed more than 1000 files
4
5
6 - this commit changed more than 1000 files
7
8
9
10

Я параллельно работаю над другой функцией.До 10-го коммита я вытягивал весь код из функциональной ветви 1.

Теперь, из-за 3-го и 6-го коммитов, при git merge возникает так много конфликтов.

Итак, можно ли оставить 3-й и 6-й коммит в покое при слиянии с feature-branch2

или есть способ выбрать коммиты от 9 до 1, исключая 3 и 6

или мы можем сделать шаг за шагом, как [9-7], [5-4], [2-1]

, пожалуйста, предложите

Ответы [ 2 ]

2 голосов
/ 11 июня 2019

Вы можете попробовать удалить или отменить коммиты, которые вам не нужны, в вашей исходной ветке, прежде чем сливаться с целевой веткой. В качестве мер безопасности вы можете создать новую ветку из feature1, а также использовать git revert для отмены нежелательных коммитов:

# from feature 1
git checkout -b feature1_a
git revert 3^..6
git push origin feature1_a

Замените 3 и 6 выше на хэши SHA-1 старых и новых коммитов в диапазоне, который вы хотите отменить.

Затем выполните запрос извлечения из feature1_a к целевой ветви.

0 голосов
/ 11 июня 2019

Сначала очевидное предположение: если вы просите удалить коммиты «3» и «6», вы знаете, что можете отказаться от изменений этих коммитов, а не просто «отменить их, потому что они меня раздражают».


Вы можете использовать git rebase -i {1} (замените "1" на хэш коммита 1 на диаграмме).

Выполнение этой команды откроет файл в текстовом редакторе:

pick 2   commit message
pick 3   commit message
pick 4   commit message
pick 5   commit message
pick 6   commit message
pick 7   commit message
pick 8   commit message
pick 9   commit message
pick 10  commit message

# Rebase 31ae65d16..b31f500e4 onto 31ae65d16 (30 commands)
#
# Commands:
# p, pick <commit> = use commit
#   ...   instructions to edit the history above

В этом файле удалите строки «3» и «6», сохраните и выйдите.

Результатом будет ветвь со всеми коммитами, кроме «3» и «6».

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