Git поддерево: можно изменить ветвь/путь поддерева в разветвленном репозитории?
В репозитории A
папка sub
включена как git поддерево репозитория S
- указывает на ветвь master
.
У меня есть forked репозиторий A
в F
. Теперь я хочу сделать одно из следующего в F
:
- изменить
sub
, чтобы использовать другую ветвь S
(т.е. ветвь develop
)
- или: изменить
sub
, чтобы использовать другой репозиторий вообще
Является ли это одним из возможных, и если да, то каким образом? Будут ли какие-либо побочные эффекты, о которых я должен знать?
И как я могу убедиться, что изменение моего поддерева не будет обновляться в репозитории A
, когда я объединю свои изменения (pull request)? Я имею в виду, кроме выделения коммитов.
Ответы
Ответ 1
Если вы использовали git subtree
(а не git submodule
) для создания поддерева, тогда это просто нормальный каталог. Чтобы переключить его на другую ветвь, просто удалите ее и заново создайте поддерево из новой ветки. Это:
git rm <subtree>
git commit
git subtree add --prefix=<subtree> <repository_url> <branch>
Это должно работать без проблем.