У меня есть репозиторий на github, содержащий веб-приложение, развернутое в двух разных доменах. В приложении есть небольшие логические вилки, которые ведут себя по-разному в зависимости от того, в каком домене оно развернуто.
Дошло до того, что я хочу разделить его на два отдельных репозитория, по одному для каждого домена.
Github не позволит мне разделить его на одну и ту же организацию. Поиск по запросу «git duplicate repo» предполагает, что я должен использовать только клонирование и зеркальное нажатие, но, похоже, это сделано для того, чтобы синхронизировать оба репозитория, чего я не хочу делать.
Как лучше всего это сделать? Я бы хотел по возможности сохранить старую историю коммитов в новой копии.
git clone --bare
иgit push --mirror
- это именно то, что вам нужно. Это не обеспечивает синхронизацию обоих репозиториев. Но он сохраняет все , включая все ветки, теги и т. Д. Просто сделайте это во временном каталоге, чтобы сделать копию. Затем клонируйте новую копию прямо с вашего пульта в каталог вашего проекта.Ответы:
Просто создайте новый репозиторий и нажмите на него из своей рабочей копии:
Теперь у вас есть новый репозиторий
myrepo-new
, который идентиченmyrepo-original
.источник
push
явно не укажете его, а «новый» репозиторий не будет иметь никакого отношения к старому.git push --all origin
Если вам не нужно отношение вилки (например, вам нужно какое-то развязанное альтернативное репо по какой-либо причине), дублирование репо в соответствии с контурами ваших находок Google и ответа larsks в порядке.
Если вы действительно хотите сделать его форком, обратитесь в службу поддержки Github (support@github.com или https://github.com/support ), и они создадут для вас форк в той же организации. (Они тоже не придирчивы к этому, вам просто нужно указать альтернативное имя для репо, поскольку имена репо в учетной записи должны быть уникальными.)
Обновление : пользователь Стив Райс сообщает в комментариях ниже, что служба поддержки GitHub заявила, что служба поддержки в настоящее время / больше не будет создавать вторую вилку в вашей учетной записи.
GitHub недавно опубликовал статью о возможных альтернативах разветвлению репо в той же учетной записи. Вы можете прочитать эту статью здесь .
источник
Используйте опцию Github Import Repository в меню + вверху страницы или просто откройте
https://github.com/new/import
Это создает новый репозиторий с точным содержимым скопированного репозитория. Обратной стороной (как и в случае с ответом Iarsks на команды git ) является то, что он не считается вилкой для Github.
источник
Другой способ - добавить исходное репо для копирования как удаленное для нашего текущего репо.
В локальном терминале запустите:
источник
Альтернативное решение:
Создайте новую организацию и создайте ее там. Если репо является частным, оно также останется частным в новой организации. Затем вы можете предоставить доступ к разветвленному репо внешним разработчикам или кому угодно, и они смогут вернуть PR к исходному репо.
источник
Не могли бы вы просто продублировать локальную папку, удалить материал git:
Затем создать в этой папке новый репозиторий? Кажется чище и проще.
источник
./.git/
не поможет заявленному OP намерению «сохранить старую историю фиксации в новой копии, если это возможно».