Создание новых проектов из существующего "шаблонного" репо
Я создал проект "шаблона" Laravel, который содержит мои обычно используемые функции/библиотеки.
Каков правильный процесс git для использования этого шаблона в качестве основы для новых проектов? Я могу представить два варианта:
- Введите
boilerplate
в newproject
и начните. Я не намерен тянуть newproject
обратно обратно в boilerplate
.
- Clone
boilerplate
и обновите удаленное начало до нового чистого репо.
Я склоняюсь к второму варианту, так как он похож на хороший чистый раскол от шаблона. Смогу ли я потерять какие-либо интересные возможности git, выполнив это?
Ответы
Ответ 1
Обновление от июня 2019 года, 6 лет спустя:
См. " Создание новых хранилищ с помощью шаблонов хранилищ ".
Совместное использование стандартного кода в кодовых базах является постоянной моделью при разработке программного обеспечения.
Начальная загрузка нового проекта с нашими любимыми инструментами и структурами каталогов помогает программистам перейти от идеи к "Hello world!" более эффективно и с меньшей ручной настройкой.
Сегодня я был рад представить шаблоны репозитория, чтобы сделать шаблонное управление кодом и распространение первоклассным гражданином на GitHub.
Для начала все, что вам нужно сделать, это пометить хранилище как шаблон, и вы сразу сможете использовать его для создания новых хранилищ со всеми файлами и папками хранилища шаблонов.
![https://github.blog/wp-content/uploads/2019/06/repository-template.gif]()
Каждый репозиторий шаблонов получает новую конечную точку URL с именем /generate
которая позволяет более эффективно распространять шаблон
Оригинальный ответ 2013:
Учитывая, что вы будете хранить свой проект на Github из одного из шаблонов, включенных в boilerplate
проект GitHub, я бы:
- Создайте новый пустой репо на GitHub (нет связи с
boilerplate
, нет необходимости в форке) - клонировать это
-
boilerplate
клона в отдельном месте на вашем диске - скопируйте правильный шаблон из локального клона
boilerplate
в ваш новый локально клонированный репозиторий Github - (
git add
, git commit
) Верните этот конкретный шаблон обратно в ваш новый репозиторий Github. - начать работать оттуда
Ответ 2
"Вилка" не является концепцией Git. Вы путаете Git с Github? Если вы хотите развернуть проект на Github, то он будет таким же, как клонирование репо, а клонирование будет звучать так, как будто вы ищете. Вы бы никогда не вносили изменения обратно в "шаблонный" репо. Тем не менее, вы можете использовать слияние или перезагрузку, чтобы вносить обновления в шаблонный репо в проекты, которые от него отталкиваются. Если ничего подобного не желательно, то зачем делать это с помощью Git? Просто сделайте рекурсивную копию каталога и начните оттуда.
Ответ 3
Ничего плохого в ответе @VonC, но вы можете использовать hub для создания однострочный файл, который эффективно использует новое репо (локально и удаленно) на основе вашего репо-сервера:
clonefork() {
hub clone "$1"
cd "${1##*/}"
hub fork
}
В вашей оболочке:
$ clonefork user/seed-repo
Под "клонированием" вашего семенного репо вы также получаете сетевой график, показывающий все созданные репозитории.
Ответ 4
Следуя указаниям @VonC, я создал функцию для своего терминала и вставил ее в свой псевдоним.
Каждый раз, когда я начинаю новый проект, я создаю репозиторий на GitHub, беру точное имя проекта и затем просто набираю на моем терминале "bp newProject"
bp () {
# Clone the boilerplate project from GitHub
git clone https://github.com/username/boilerplate.git;
# Rename the boilerplate folder to newProject
mv boilerplate "[email protected]";
# Access the newProject folder
cd "[email protected]";
# Delet the .git folder
rm -rf .git;
# Initialize git
git init;
# Add;
git add .;
# Commit using 'initial setup; as message;
git commit -m 'initial setup';
# And push it
git remote add origin https://github.com/username/"[email protected]".git;
git push -u origin master
}
Ответ 5
Я только что опубликовал инструмент CLI, который создает новый проект на основе существующего репо и даже удаленно создает свой собственный на Github. https://github.com/theJacobDev/binit
Ответ 6
Это не совсем то, что вы спрашиваете, но это также может быть полезно для решения подобных проблем.
Существует инструмент для начальной загрузки репозитория Github из yaml
конфигурации yaml
https://github.com/g4s8/gitstrap.
Оно может:
- Создать новый репозиторий на Github
- Синхронизация с локальным каталогом
- Применять шаблоны (например, README со значками, конфиги CI, LICENSE и т.д.)
- Настроить webhooks для Github репо
- Пригласить соавторов
поэтому вы можете создавать шаблоны для похожих проектов вместо создания репозитория шаблонов и применять их с помощью файла конфигурации при создании нового репозитория Github с помощью этого инструмента.