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

Может/должен ли я переделать собственный репозиторий github?

My github repo называется Programming-iOS-4-Book-Examples, потому что это пример кода из моей книги "Программирование iOS 4". Теперь я написал новое издание книги под названием "Программирование iOS 5". Мне нужно оставить старое репо на месте со старым именем, потому что есть ссылки на него по всей сети, и кому-то может понадобиться старый код. Но теперь я также хочу новое репо с новым именем Programming-iOS-5-Book-Examples, содержащее те же примеры, которые были перезаписаны для iOS 5 (плюс некоторые новые).

Естественно, я увидел это: Как я могу разблокировать свой собственный репозиторий GitHub? Но совет должен использовать ветки. Это не сработает для меня. Я не хочу использовать ветку, потому что это побеждает цель предоставления репо имени, на которое я могу ссылаться. Я хочу, чтобы публика нашла примеры iOS 4 в репозитории iOS 4 и моих iOS 5 в репозитории iOS 5.

Это похоже на идеальное использование вилки, но когда я нажимаю кнопку "Вилка", ничего не происходит; Мне, видимо, не разрешено разворачивать собственное репо.

Конечно, я мог бы просто сделать это совершенно новым репо, но это означало бы загрузку всех ресурсов по отдельности, что является неудачным, потому что все уже есть в репозитории iOS 4. Должен ли я просто так делать?

4b9b3361

Ответ 1

В конце концов, что я сделал:

  • Я переименовал существующее репо. Это отлично работает (спасибо, github, за то, что так легко). Не забудьте отредактировать собственный файл git repo config, чтобы сохранить связь удаленного ветки между вашей собственной ветвью мастера и веткой master-сервера github.

  • Я создал новое репо со старым именем репо, состоящим только из README.md, предоставляющего существующий новый URL-адрес репо.

Таким образом, я не закончил разделение содержимого книги iOS 4 из содержимого книги iOS 5. Вместо этого я перестроил структуру исходного репо и дал ему более общее имя, но не привязанное к iOS 4 в частности. И существующие ссылки на старое репо не ломаются, потому что там репозиторий-заполнитель по этому URL-адресу, указывая на новое репо.

Ответ 2

У вас не может быть двух репозиториев с тем же именем, и разметка на Github автоматически передает имя, так что это не позволяет работать. Похоже, вам будет хорошо обслуживать, добавив ветку локально, а затем нажав на новый репозиторий Github с новым именем. Вы даже можете сохранить репозиторий Github, показывая master как ветку:

git clone git://github.com/you/repo.git
git checkout -b new_book
[ create new repo on Github ]
git remote add new_origin git://github.com/you/repo.git
git push new_origin new_book:master

Просто используйте более подходящие имена, и вы золотые. Вы можете объединять обновления с общими примерами, добавлять дополнительные примеры в новый код книги, а при внесении изменений просто нажимайте на origin и new_origin (используя имена примеров выше).

Ответ 3

Я знаю, что это старо, но в последнее время я столкнулся с той же проблемой. Что для меня работало, было следующим:

  • Создать new_repo в github
  • git clone new_repo
  • cd new_repo
  • git удаленное добавление upstream old_repo.git
  • git pull upstream master
  • git push origin master

Я получил все вышеперечисленное из здесь.

Ответ 4

Учитывая, что у вас может быть URL-адрес, связывающий ветки в репо, вы все равно можете использовать ветки, которые INMHO являются естественным и простым способом для этого случая.

Например, у вас может быть следующий URL-адрес для примера iOS4:  https://github.com/mattneub/Programming-iOS-Book-Examples/tree/ios4

И https://github.com/mattneub/Programming-iOS-Book-Examples/tree/ios5 для примеров iOS5, где ios4 и ios5 - ваши имена ветвей.