У меня есть ветка A
, созданная на основе другой ветки B
. Некоторые коммиты из ветки B
также присутствуют в ветке A
. Я подумываю об удалении этих коммитов из ветки A
, но меня беспокоит, удалит ли это их также и из ветки B
.
A
, эти коммиты тоже будут удалены из ветки B
?A
полностью независимой от ветки B
, чтобы я мог удалять коммиты, не затрагивая исходную ветку?Для контекста:
B
.Если вы отредактируете только историю ветки A
, это не повлияет на ветку B
и будет иметь несогласованность ветвей с первого удаленного коммита.
Что вы подразумеваете под «сделать ветку A
полностью независимой»? Ветки не имеют никаких зависимостей от других веток, поэтому все ветки уже полностью независимы. Между локальной ветвью и удаленной ветвью отслеживания существует некоторая связь, но простое создание A
из B
не создает какой-либо зависимости.
Не имеет смысла. Ветка — это просто имя одного коммита. Это не какая-то расширенная серия коммитов. Если вы хотите поговорить о том, какие коммиты находятся «в» ветке, ответ таков: все коммиты, начинающиеся с этого коммита, идущие в обратном направлении через родительскую цепочку, вплоть до корневого коммита репо.
Нет, ветвь A является производной от ветви B, и когда вы их удаляете, это не повлияет на «Родительскую ветвь».
Вы можете использовать этот код git rebase --onto [newParent] [oldParent] [branchToMove]
Надеюсь, это помогло вам.
Как вы удаляете коммиты? Похоже, вы неправильно поняли, что такое ветка. Ветка — это не список коммитов, это указатель на один коммит.