Учитывая, что:
feature
уже ссылается на коммиты с момента последнего слияния с master
- ветвями являются просто указателями
x--x--x (master)
\
y--y--y (feature)
Вы можете просто:
git checkout feature
git checkout -b feature2
git branch -f feature master
(при условии, что на master
не было выполнено никаких коммитовfeature
объединить)
x--x--x (master, feature)
\
y--y--y (feature2)
На все коммиты от мастера больше не ссылается feature
(который сбрасывается на master
), но теперь доступны через feature2
(где feature
находится перед сбросом на master
)
OP Chip Castle добавляет:
У меня есть еще 3с тех пор члены команды, чьи ветви были объединены в master, не хочу объединять те же коммиты, которые я уже слил.
Я надеялся дать диапазон SHA только для коммитов, которые мне нужны, от функции доновая ветка.Есть ли способ сделать это или лучше?
Таким образом, ситуация такова:
x--x--x--y'--y' (master, updated after a fetch from other repo)
\
y'--y'--y--y (feature, with y' being already merged,
and y being the commits I need)
Тогда вы можете просто перебазировать функцию поверх мастер: идентичные коммиты будут игнорироваться.