У меня есть mainProject
на git, с shared library
. Этот shared library
также находится в subProject
.git merge in wrong folder
мой рабочий процесс
Я начинаю свой проект по клонированию проекта и создать ветвь:
git clone https://github.com/user/mainProject.git main-project
git checkout -b fix
Я работал на моем mainProject
, и добавил awesomeClass.php в папке lib/
(корень из shared library
)
Новая файловая структура:
/index.php
/page1.php
/lib/form/contact.php
/lib/awesomeClass.php*
* = новый
после этого я добавляю и совершать свои изменения.
git add lib/awesomeClass.php
git commit -m "added new awesome class that will blow your mind"
Добавить удаленность shared library
, принесите и подключить пульт дистанционного управления для местного отделения
git remote add sharedlib https://github.com/user/sharedlib.git
git fetch sharedlib
git checkout -b sharedlib sharedlib/master
это переключает свой филиал в sharedlib
, где я пытаюсь объединить свои изменения, чтобы получить те же изменения от shared library
к моему подпроекту.
git merge --squash -s subtree --no-commit fix
Это где идет не так, структура файла (видно из sharedlib
ветви перспективы):
/lib/form/contact.php
/lib/awesomeClass.php
после слияния:
/lib/form/index.php*
/lib/form/page1.php*
/lib/form/lib/form/contact.php*
/lib/form/lib/awesomeClass.php*
/lib/form/contact.php
/lib/awesomeClass.php
* = новый
Может кто-нибудь объяснить, как я могу объединить только shared library
, а не полный mainProject
в неправильную папку? Спасибо!
Почему 'sharedLib' имеет все свои файлы в папке' lib'? Разве это не должно присутствовать только в 'mainProject', чтобы отделить« sharedLib »от остальной части содержимого репозитория? – LopSae
Не знаете, как вы обрабатываете свой 'sharedLib', но на всякий случай эта статья объясняет одну возможную стратегию: http://git-scm.com/book/ch6-7.html – LopSae
Я использовал это: [Вложенные библиотеки погружались ] (http://typecastexception.com/post/2013/03/16/Managing-Nested-Libraries-Using-the-GIT-Subtree-Merge-Workflow.aspx). эта статья работает только один раз. После первого слияния/обновления 'sharedLib', он просто слияние/обновление в неправильную папку. например. как описано выше в папке 'lib/form', а не просто' lib/'.. Я пробовал вашу статью, но то же самое происходит на шаге слияния. – Arazu