Вопрос по version-control, git-fork, github, git – Как вы разворачиваете свой собственный репозиторий на GitHub?

117

У меня есть публичный репозиторий на GitHub. Я хочу скопировать / скопировать его и работать над новым проектом, основанным на этом хранилище, но я не хочу влиять на то, как оно сейчас. Я пытался разветвлять его с помощью пользовательского интерфейса GitHub, но он ничего не делал.

Преимущество fork по сравнению с созданием нового репо заключается в том, что графики и история сети связаны между собой. Жаль, что Github не позволяет этого. kenchew
Что именно вы пытаетесь достичь? Может быть, вы можете решить это, просто разветвившись? Artefact2
@ Artefact2 .. Извините, я думал, что решение mcepl решило мою проблему, но это не так. После того, как я клонирую проект с помощью «git clone», я не хочу указывать на исходное репо, а на новое репозиторий на github, который я создал. Как я могу этого достичь? WowBow
Я хочу получить копию проекта и расширить этот проект, чтобы сделать что-то еще, но не затрагивая оригинальный проект. Это было это. Любыми способами, это решено. WowBow
@ Artefact2 Ты получил мои вопросы? WowBow

Ваш Ответ

9   ответов
-1

вы можете импортировать из другого репо с помощью .git url репо. Это заняло у меня 30 секунд.

6
git clone https://github.com/YOURREPO.git TargetRepoName cd TargetRepoName/ git remote set-url origin https://github.com/TargetRepoName.git git push -u origin master
Можно добавить, что вам нужно создатьgithub.com/TargetRepoName.git раньше на GitHub, но кроме этого, этот ответ был моим первым выбором, и он работал.
150


Клонировать его и перенести в новый репозиторий - это хорошо, но вам нужно:

git clone https://github.com/userName/Repo New_Repo
cd New_Repo
git remote set-url origin https://github.com/userName/New_Repo
git remote add upstream https://github.com/userName/Repo
git push origin master
git push --all

(увидетьgit push)

См. Весь процесс, описанный в & quot;Создайте свой собственный проект на GitHub& Quot ;.

Через шесть лет (2016) у вас теперь естьGitHub импортер что позволяет импортировать репо из другого источника ... включая GitHub.
Смотрите & quot;Импортирование репозитория с помощью GitHub Importer& Quot;

https://help.github.com/assets/images/help/importer/import-repository.png

НАРФ& APOS; sответ (голосование) также иллюстрируют этот процесс.

Это позволит вам создать новый репозиторий и импортировать полную историю старого в новый, используя его URL-адрес GitHub.

Опять же: вы получаете копию, а не настоящий форк: вы не можете сделать запрос на извлечение из нового репо к старому.

Я говорил о .git / config. Если вы не измените URL источника, когда вы говорите "git remote add ...." , он отклонит вас, потому что имя источника уже существует. Но как только я изменил URL в файле конфигурации, он работает нормально. Статья, которую вы указали мне, показывает это. WowBow
Спасибо @VonC. Я думаю, что вы забыли упомянуть редактирование файла конфигурации. WowBow
@aus, что ожидается для вас, чтобы получить от вверх по течению. Увидетьstackoverflow.com/a/33360766/6309
@WowBow еслиremote уже существует, тогда сделайтеgit remote set-url origin https://github.com/userName/New_Repo, Это изменит.git/config файл для вас. Увидетьgit-scm.com/docs/git-remote
Я все еще чувствую, что форкинг от репо в той же организации должен быть разрешен. Что, если существует центральный репозиторий, который является общим для всех, и вы хотите получать от него обновления все время и в то же время вносить конкретные изменения в свою разветвленную копию в соответствии с вашими потребностями?
1

remote: Repository not found

То, что работало, было следующим:

Create a new_repo at github git clone new_repo cd new_repo git remote add upstream old_repo.git git pull upstream master git push origin master

Я получил все вышеперечисленное отВот.

2

орий, затем выбрать опцию импорта и указать URL-адрес репо, которое вы хотите раскошелиться.

Изображения ниже помогут:

Форк собственного репо через import-1

Форк собственного репо через import-2

1

вот одно простое решение в качестве альтернативы другим отличным ответам выше. То, что вам нужно, это просто приложение GitHub Desktop.

Open your own project repo from browser, and download as a zip, eg your-project-master.zip. Unzip and rename it as your new repo. Open GitHub Desktop, and add your new repo by browsing it to your unzipped local path new repo. enter image description here Publish it to your github, by clicking the publish button. Don't forget to add the name and the description :)
71

Copy your repo's URL. Ex: https://github.com/YourName/YourOldRepo (hint: it's the URL when you look at your repo's main page on github. Click the + icon in the top right corner.
https://i.stack.imgur.com/9zJgo.png Select "Import repository". Where it asks for the "Old URL", paste the URL you copied at step #1
https://i.stack.imgur.com/vgWd3.png Enter the name of your new repo and click Begin Import. That's it! You now have a copy of the full repo, with all commit history and branches!

Ограничения: на самом деле это не настоящий форк. Это копия репо. Это не позволит выполнять запросы на возврат и обратно.

Я забыл GitHub Importer (выпущенный в 2016 году) в своем старом ответе 2010 года: я добавил ссылку на этот инструмент и на ваш ответ.
1

. и это, казалось, сработало.

https://help.github.com/articles/duplicating-a-repository/

To create a duplicate of a repository without forking, you need to run a special clone command against the original repository and mirror-push to the new one. This works with any git repository, not just ones hosted on GitHub.

-1

Fork your repo into an organization account Rename it Transfer ownership back to yourself
это потому, что они теперь имеют перенаправления после того, как вы переименуете или перенесете свои репозиторииgithub.com/blog/1508-repository-redirects-are-here
Возможно, работал в одно время, но больше не работает
Хорошая идея, но я только что попробовал это и получил ошибку:aspiers already has a repository in the UPSTREAM/NAME network.

Похожие вопросы