Повлияет ли удаление определенных коммитов из ветки на исходную ветку, из которой они были созданы?

У меня есть ветка A, созданная на основе другой ветки B. Некоторые коммиты из ветки B также присутствуют в ветке A. Я подумываю об удалении этих коммитов из ветки A, но меня беспокоит, удалит ли это их также и из ветки B.

  1. Если я удалю коммиты из ветки A, эти коммиты тоже будут удалены из ветки B?
  2. Есть ли способ сделать ветку A полностью независимой от ветки B, чтобы я мог удалять коммиты, не затрагивая исходную ветку?

Для контекста:

  • Я удалил несколько коммитов в ветке B.

50
1

Ответ:

Решено
  1. Нет, ветвь A является производной от ветви B, и когда вы их удаляете, это не повлияет на «Родительскую ветвь».

  2. Вы можете использовать этот код git rebase --onto [newParent] [oldParent] [branchToMove]

  • rebase — изменить родителей чего-либо.
  • --onto — это флаг, который сообщает git использовать эту альтернативную перезагрузку. синтаксис
  • newParent — это ветка, которую будет перебазировать ветка. иметь в качестве родителя
  • oldParent — это ветка, в которой вы находитесь. в настоящее время имеет родительский статус
  • BranchToMove — это ветка, которую вы перемещаете (перебазируете)

Надеюсь, это помогло вам.