Как сделать проект GitHub частью более крупного решения на уровне хранилища? - PullRequest
4 голосов
/ 17 декабря 2011

Я делаю проект, который будет иметь эти 3 компонента (все работают вместе):

  • Пользовательский код на стороне сервера
  • Пользовательский код на стороне клиента
  • Одна сторонняя библиотека, которая является проектом GitHub (BSD лицензирована)

Как часть разработки, вполне вероятно, что я внесу изменения в сторонний библиотечный проект и захочу передать свои изменения обратно владельцу проекта, предпочтительно с помощью GitHub fork / pull request.

Вопрос в том, как мне структурировать мой репозиторий (репозитории), если я не хочу, чтобы он был полностью открытым исходным кодом и размещался на GitHub? Если бы это был 100% закрытый исходный код, у меня был бы один репозиторий с 3 основными папками, что-то вроде ServerSide, ClientSide и LibraryXY, но я предполагаю, что копирование содержимого сторонней библиотеки в LibraryXY сделает трудно внести изменения в него обратно владельцу проекта на GitHub.

1 Ответ

3 голосов
/ 17 декабря 2011

Вы можете использовать либо git submodule, либо git subtree команды.

Подмодуль в репозитории git похож на подкаталог, который на самом деле является отдельным репозиторием git. Это полезная функция, когда у вас есть проект в git, который зависит от конкретных версий других проектов. см. Подробности

Поддеревья позволяют включать подпроекты в подкаталог основного проекта, возможно, включая подпроекты вся история Например, вы можете включить исходный код для библиотеки как подкаталог вашего приложения. подробности

Исходя из структуры вашего проекта, я бы предложил вам использовать git subtree

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...