Подтвердить что ты не робот

Копировать/форвард a git repo на github в ту же организацию

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

Он подходит к тому, где я хочу разбить его на два отдельных репозитория: по одному для каждого домена.

Гитуб не позволит мне разветкить его в той же организации. Поиск "git duplicate repo" предполагает, что я должен отключить клон и зеркало, но это похоже на то, чтобы синхронизировать оба репозитория, что я не хочу делать.

Какой лучший способ сделать это? Я хотел бы сохранить старую историю фиксации в новой копии, если это возможно.

4b9b3361

Ответ 1

Просто создайте новый репозиторий и нажмите на него из своей рабочей копии:

git clone [email protected]:me/myrepo-original
cd myrepo-original
git remote set-url origin [email protected]:me/myrepo-new
git push origin master

Теперь у вас есть новый репозиторий myrepo-new, который идентичен myrepo-original.

Ответ 2

Если вам не нужна связь с форком (например, по какой-либо причине вам нужно какое-то разделенное альтернативное репо), продублируйте репо в соответствии с вашими поисковыми запросами Google, и ответ жаворонка подойдет.

Если вы хотите сделать это форком, обратитесь в службу поддержки Github ([email protected] или https://github.com/support), и они создадут форк в той же организации для вас. (Они тоже не разборчивы в этом, вам нужно просто указать альтернативное имя для репо, так как имена репо в учетной записи должны быть уникальными.)


Обновление: пользователь Steve Rice сообщает в комментариях ниже, что служба поддержки GitHub заявила, что в настоящее время поддержка не будет/больше не будет настраивать второй форк в вашей учетной записи. Вы все еще можете попытаться спросить их, поскольку сотрудники службы поддержки могут сделать это, но это также может быть изменением политики, не позволяющим им сделать это.

Ответ 3

Другим способом было бы добавить исходное репо, которое будет скопировано, как удаленное для нашего текущего репо.

#create a new repo in the org1 organization called myrepo-new

В вашем локальном терминале запустите:

git clone [email protected]:org1/myrepo-new
cd myrepo-new
git remote -v #shows current repo link on github as origin
git remote add name-for-remote https://github.com/org1/repo-old
git remote -v #shows repo-old as name-for-remote
git fetch  name-for-remote
git merge name-for-remote/branch-to-get-from-remote
#Now fix any conflicts if present
#If number of files/commits is very high, the desktop client may hang when you try to commit your changes after merge. Try switching to Git Shell if this happens.
git status 
git commit -m "commit message"
git push origin master

Ответ 4

Используйте опцию Github Import Repository в меню + в верхней части страницы.

Это создает новый репозиторий с точным содержимым скопированного репозитория. Недостатком является то, что это не считается вилкой для Github.

Ответ 5

Альтернативное решение:

Создайте новую организацию и раскройте ее там. Если репозиторий закрыт, он также останется закрытым в новой организации. Затем вы можете предоставить доступ к внешним разработчикам или тому, кому вы хотите, к раздвоенному репо, и они могут поднять PR обратно к первоначальному репо.

Ответ 6

Не могли бы вы просто скопировать локальную папку, удалить git вещи:

rm -rf .git*

Затем сделать новый репозиторий в этой папке? Кажется, чище и проще.