Вот наши папки git.Как слить подпапку git из другой подпапки?
folder1/ххх/а/б/с
folder2/ууу/а/б/с
В прошлом, мы можем использовать SVN для слияния Folder1/ххх от folder2/yyy.
Можно ли сделать то же самое в Git?
Вот наши папки git.Как слить подпапку git из другой подпапки?
folder1/ххх/а/б/с
folder2/ууу/а/б/с
В прошлом, мы можем использовать SVN для слияния Folder1/ххх от folder2/yyy.
Можно ли сделать то же самое в Git?
Простейшим решением было бы установить обе каталоги как подмодули/поддеревья (у них уже есть отдельные хранилища/svn-репозитории, правда?). Тогда вы просто добавить в Folder1 репозиторий отдаленное, который указывает на folder2 хранилище, и вы просто объединить изменения, как это было любой другой удаленный:
# go to folder1 repository
cd /path/to/folder1repo
# or `cd folder1` if you are familiar with inline submodule editing caveats
# add a remote pointing to folder2 repo
git remote add folder2 /path/to/repo/folder2
# fetch it
git fetch folder2
# merge folder2 into folder1
git merge folder2/master
Единственный нюанс в том, что вы на самом деле есть подмодуль, и вы должны взять на себя обязательство суперпроект каждый раз, когда вы объединяете эти папки (так как, скажем, folder1 изменится и суперпроект должны указывать на разные фиксации):
cd /path/to/superproject
git add folder1
git commit -m "Merged folder2 submodule into folder1"
в качестве альтернативы подмодуль можно использовать поддерево слияние РЕПО обоих forlders', установка немного сложнее, но тогда вы просто пытаетесь обновить все такие поддеревья :)
Вот хороший учебник поддерево: http://nuclearsquid.com/writings/subtree-merging-and-you/
BTW. Вы можете создать удаленный проект с совершенно другим проектом, и вы можете объединить его код с помощью простого слияния :). Использование сценариев использования git бесконечно :)
Эти две папки имеют свой собственный репозиторий Git? Они клонированы из центрального хранилища? – GoZoner
нет, есть в том же хранилище Git. – jumperchen
В прошлом они были в том же хранилище SVN? – GoZoner