Используя подмодули Git , вы можете связать весь репозиторий только внутри другого. Таким образом, одним из способов было бы разделить весь каталог /sql
на отдельный репозиторий и связать его как подмодуль с обоими репозиториями.
В этом случае изменения в файлах связанного репозитория будут отправлены на источникхранилище.
Но есть также поддерево , которое может позволить то, что вам нужно. Но я никогда не использовал это, поэтому вы должны попробовать это.
Проверьте, например, эту страницу :
# Clone the target repo
git clone git@github.com:jclouds/jclouds.git
cd jclouds
# Add the source repository as a remote, and perform the initial fetch.
git remote add -f sourcerepo git@github.com:jclouds/jclouds-labs-openstack.git
# Create a branch based on the source repositories' branch that contains the state you want to copy.
git checkout -b staging-branch sourcerepo/master
# Here's where the two approaches diverge.
# Create a synthetic branch using the commits in `/openstack-glance/` from `sourcerepo`
git subtree split -P openstack-glance -b openstack-glance
# Checkout `master` and add the new `openstack-glance` branch into `/apis/openstack-glance/`. At this point, the desired result will have been achieved.
git checkout master
git subtree add -P apis/openstack-glance openstack-glance
# Clean up by removing the commits from the `openstack-glance` branch and the `sourcerepo` remote.
git branch -D openstack-glance staging-branch
git remote rm sourcerepo
В этом случае изменяется связанное поддерево иликаталог не будет возвращен в исходный репозиторий, но я думаю, что то, что вам нужно, должно быть в порядке.