Как переименовать репозиторий на GitHub?


317

Я хотел переименовать одно из своих хранилищ на GitHub, но я испугался, когда большое красное предупреждение гласило:

  1. Мы не будем устанавливать никаких перенаправлений со старого места
  2. Вам нужно будет обновить ваши локальные репозитории, чтобы указать новое местоположение
  3. Переименование может занять несколько минут

У кого-нибудь есть пошаговые инструкции о том, как выполнить # 1 и # 2 вручную? Или что я должен делать на месте?


7
Вам больше не нужно обновлять свой локальный повтор после переименования репозитория Github. Смотрите мой ответ ниже .
VonC

2
В Bitbucket вы заходите в настройки репозитория и меняете имя, а затем на локальном компьютере изменяете его также в .git/configфайле.
aliteralmind

1
Открыть репо -> Настройки -> Переименовать
Канагавелу Сугамар

Ответы:


339

Если вы единственный человек, работающий над проектом, это не большая проблема, потому что вам нужно только сделать №2.

Допустим, ваше имя пользователя someuserи ваш проект называется someproject.

Тогда URL вашего проекта будет 1

git@github.com:someuser/someproject.git

Если вы переименуете свой проект, он изменит someprojectчасть URL, например

git@github.com:someuser/newprojectname.git

(см. сноску, если ваш URL не выглядит так).

Ваша рабочая копия Git использует этот URL, когда вы делаете pushили pull.

Поэтому после того, как вы переименуете свой проект, вам придется сообщить рабочей копии новый URL.

Вы можете сделать это в два этапа:

Во-первых, перейдите cdв локальный каталог Git и выясните, какие удаленные имена ссылаются на этот URL:

$ git remote -v
origin  git@github.com:someuser/someproject.git

Затем установите новый URL

$ git remote set-url origin git@github.com:someuser/newprojectname.git

Или в более старых версиях Git вам может понадобиться:

$ git remote rm origin
$ git remote add origin git@github.com:someuser/newprojectname.git

(origin это наиболее распространенное удаленное имя, но оно может называться как-то иначе.)

Но если над вашим проектом работает много людей, им всем нужно будет выполнить описанные выше шаги, и, возможно, вы даже не знаете, как с ними связаться, чтобы рассказать им. Вот о чем # 1.

Дальнейшее чтение:

Примечания:

1 Точный формат вашего URL зависит от того, какой протокол вы используете, например,


Спасибо за ваш ответ! Для # 1 у меня нет веб-страниц, которые ссылаются на репо. Так я в безопасности? Что касается # 2, что именно там происходит? Спасибо!
раввин

Я добавил больше информации о пультах, которые должны помочь.
Микель

1
Мой вывод для git remote -vв форме git@github.com:someuser, косая черта, которую вы поставили здесь, не работает для меня. Все остальное здесь сделал, хотя.
Дрооганс

Спасибо. Исправлена. Мне все еще нужно найти способ упомянуть https и git URL.
Микель

3
Повлияет ли это на статистику репо, как на количество звезд?
Алекс Наспо

132

Обратите внимание, что с мая 2013 года (« Перенаправления репозитория уже здесь! ») Вы можете переименовывать репозиторий GitHub, не нарушая никаких ссылок:

Мы рады объявить, что начиная с сегодняшнего дня, мы автоматически перенаправим все запросы на предыдущие местоположения хранилища в их новый дом в этих обстоятельствах. Там нет ничего особенного, что вы должны сделать. Просто переименуйте, и мы позаботимся обо всем остальном.

В качестве специального бонуса мы также будем обслуживать все Git-клоны, выборки и push-запросы из предыдущих хранилищ .

Это означает, что вам даже не нужно git remote set-url(изменять URL-адрес вашего удаленного репозитория GitHub) в локальном клонированном репо!
Хотя Габриэль отмечает в комментариях, что официальная страница справки GitHub настоятельно рекомендует вам сделать это:

чтобы избежать путаницы, мы настоятельно рекомендуем обновить любые существующие локальные клоны, чтобы они указывали на новый URL-адрес хранилища. Вы можете сделать это, используя git remote в командной строке:

git remote set-url origin new_url

Осторожно, хотя:

Сайты GitHub Pages не перенаправляются автоматически, когда их репозитории переименовываются в это время.
Переименование репозитория страниц будет продолжать разрушать любые существующие ссылки на контент, размещенный вgithub.ioдомене или пользовательских доменах.

Кроме того, пользователь по-прежнему владеет пространством имен : если он / она создает новое репо, используя старое имя переименованного репо, то перенаправление (для указанного переименованного репо) перестанет работать.


4
Это действительно полезно, но поначалу очень сбивало с толку, когда переименование не нарушило мою старую пуш / пулл активность. Теперь я могу немедленно изменить имя и сообщить всем остальным, чтобы они обновляли свои репозитории set-urlдо определенной даты. После этой даты, я разбиваю старое имя репо, создав один пустой с хорошим «Я предупреждала U» README файл.
cod3monk3y

Обратите внимание, что даже если вам не нужно использовать git remote set-urlдля обновления существующего локального клона указатель на новый URL-адрес хранилища, настоятельно рекомендуется сделать это.
Габриэль

61

Я переименую свое собственное просто:

  1. собираюсь на github.com в моем хранилище
  2. Открыть вкладку настроек
  3. Первая настройка, которую вы видите, это «Имя хранилища»
  4. Измените фактическое и добавьте новое имя, которое вы хотите дать вашему хранилищу
  5. Нажмите на переименовать

После этого шага GitHub убедится, что ваш онлайн-репозиторий соответствует имени вашей локальной папки. На этом этапе ваша проблема решена, если вы также не хотите переименовать вашу локальную папку. Затем сделайте это вручную и просто используйте Github-клиент для Windows, чтобы заново связать ваш репозиторий с жестким диском, и Github снова сопоставит его. Вот и все! Очень просто.


1
Удивительно, как не только высоко оцененные ответы здесь, но и страницы справки на github.com пропускают шаг переименования на github.com через вкладку настроек.
user3673

16

Самый простой способ, который я нашел

  1. Перейдите по ссылке на репо, например: - https://github.com/someuser/someRepo.git

  2. Нажмите на вкладку настройки.

введите описание изображения здесь

Первое, что вы можете увидеть, это имя вашего репо, вы можете отредактировать его.

Примечание: - Если вы клонировали репо на локальном компьютере, измените имя папки вручную, вот и все.


10

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

Есть две вещи, которые нужно иметь в виду:

  • Удаленный репозиторий
  • Локальная копия хранилища

Если вы еще не клонировали репо на своем компьютере, вам просто нужно переименовать репозиторий Github, а затем приступить к клонированию репо, чтобы вы могли получить локальную копию. Чтобы переименовать репозиторий Github, вам просто необходимо:

  1. Перейдите на сайт репозитория (например, https://github.com/userX/repositoryZ ).
  2. На панели навигации вы увидите вкладку «Настройки». Нажмите здесь.
  3. Просто отредактируйте имя текущего репозитория с нужным и нажмите «Переименовать».
  4. Клонируйте репозиторий как обычно (например, git clone https://github.com/userX/repositoryU ).

Если у вас уже есть локальная копия проекта , помимо выполнения описанных выше шагов, вам необходимо убедиться, что ваш локальный репозиторий (корневая папка) правильно переименован и указывает на правую ссылку на удаленный URL-адрес :). Для этого сделайте следующее:

  1. Возможно, вы захотите использовать новое имя для вашего репо. Для этого переименуйте локальную папку, используя графический интерфейс ОС (Finder, Windows Explorer и т. Д.) Или консоль:

mv -R current-repo-name new-repo-name

  1. Измените удаленный URL. Из корня папки используйте следующее:

$ git remote set-url origin https://github.com/userX/repositoryU

или

$ git remote set-url origin git@github.com:userX/repositoryU.git

Второй шаг не является обязательным, хотя. Некоторое время назад Github объявил, что перенаправит все запросы из предыдущих URL-адресов хранилища на назначенные . Это означает, что вам не нужно использовать$ git remote set-url ... , но они по-прежнему побуждают вас делать это, чтобы избежать путаницы.

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


9

Этот ответ сейчас устарел! GitHub будет перенаправлять на новые места сейчас. Смотрите этот ответ для деталей.


Причина этого предупреждения в том, что № 1 нельзя сделать вручную.

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

Тем не менее, причина иметь публичный репозиторий на github, в первую очередь, в том, что вы можете сделать так, чтобы другие клонировали ваш репозиторий и делали ссылки на страницу вашего проекта github.


Старый URL-адрес github.com/<username>/<repository>принадлежит github. Когда они не устанавливают никаких перенаправлений на новый URL, никто не может. Так что все сломается для всех, кроме людей, которых вы говорите.

Насколько велика проблема, зависит только от вас. Если у вас есть официальная страница проекта на другом сервере, то URL-адрес github может не быть большой проблемой. Если вы рекламировали свой проект с помощью URL-адреса github в списках рассылки и каталогах, то вам, вероятно, не следует менять имя репо.


Альтернативой изменению имени репо является создание нового репозитория и оставление в старом заметках (также как коммиты в репо) о том, как достичь нового репо.

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


6

Стоит отметить, что если вы разветвляете проект GitHub, а затем переименовываете новую порожденную копию, новое имя появляется в графе участников сети родительского проекта. Дополнительные отношения также сохраняются. Это должно касаться любых оговорок, связанных с первым пунктом в первоначальном вопросе, связанном с перенаправлениями, то есть вы все еще можете получить отсюда, так сказать. Я тоже колебался из-за необратимости, на которую нацелено предупреждение, так что, надеюсь, это спасет других, которые задержат.


Вы не можете раскошелиться на github. Таким образом, вы должны использовать другую учетную запись, но это будет работать.
JonnyJD

Я разветвился в организации, так что я думаю, это то же самое, что и использование другой учетной записи. Я уверен, что вы правы.
Нил Бест

Вы можете создать новый пустой репозиторий. Клонировать старый репозиторий. Добавьте удаленную ссылку на ваш новый репозиторий. Затем добавьте нужные ветки в новый репозиторий (например, master). Я предполагаю, что это будет частичная вилка
Даррел Ли

6
  • Перейдите к своему пути к хранилищу.
  • Нажмите на кнопку настройки , которая находится в правой панели.
  • Замените старое имя хранилища на новое.
  • Нажмите на кнопку переименовать

3

Это решение для тех пользователей, которые используют рабочий стол GitHub.

  1. Переименуйте ваш репозиторий из настроек на GitHub.com

  2. Теперь с вашего рабочего стола нажмите на синхронизацию.

Готово.


Странно, что такую ​​основную функцию нельзя найти в самом приложении
svarog

1
  1. откройте этот URL ( https://github.com/ ) в своем браузере

  2. Перейти в репозитории в правом конце страницы

  3. Откройте ссылку репозитория, который вы хотите переименовать

  4. нажмите Настройки (вы найдете в панели навигации)

  5. Вверху вы найдете поле Called (имя репозитория), где вы пишете новое имя

  6. Нажмите Переименовать


0

Я попытался переименовать хранилище на веб-странице:

  1. Нажмите в верхней части правильных страниц, что это ваш аватар.
  2. Вы можете посмотреть на значок setting, нажмите на него, а затем вы можете найти Repositoriesпод Personal setting.
  3. нажмите Repositoriesи введите свои каталоги репозиториев, выберите репозиторий, который вы хотите переименовать.
  4. Затем вы войдете в выбранный репозиторий и увидите, что значок settingдобавлен в верхнюю строку, просто щелкните по нему и введите новое имя, затем нажмите Rename.

Готово, так просто.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.