Перейти к содержимому

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

  • автор:

Переименование репозитория Git в проекте

Репозиторий Git можно переименовать в проекте из веб-браузера. После переименования репозитория каждый участник команды должен выполнить несколько действий, чтобы повторно включить компьютеры разработки для подключения к репозиторию на сервере.

Предварительные требования

  • Чтобы переименовать репозиторий, необходимо иметь разрешения на переименование репозитория Git.
  • Если вы хотите использовать команду az repos update для переименования репозитория, обязательно выполните действия, описанные в статье Начало работы с Azure DevOps CLI.

Переименование репозитория

  1. На веб-портале выберите Репозитории, Файлы. Просмотр файлов
  2. В раскрывающемся списке репозитория выберите Управление репозиториями. Управление репозиториями
  3. Выберите имя репозитория в списке Репозитории , выберите меню . , а затем выберите Переименовать репозиторий. Переименование репозитория
  4. Переименуйте репозиторий, введя новое имя репозитория и выбрав Переименовать. Подтверждение переименования репозитория
    1. На веб-портале откройте страницу администрирования проекта и выберите Управление версиями.

    Параметры управления версиями

    Переименование репозитория

    Выберите репозиторий, который нужно переименовать в разделе Репозитории Git слева, и выберите . . Выберите Переименовать репозиторий. в меню.

    Панель

    Примечание Если панель Репозитории не развернута, выберите > , чтобы развернуть ее, и отобразите список репозиториев.

    Подтверждение переименования репозитория

  1. Введите новое имя репозитория в поле Имя репозитория в диалоговом окне, а затем выберите Переименовать.

С помощью команды az repos update можно обновить ветвь по умолчанию или переименовать репозиторий.

az repos show --repository [--default-branch] [--detect ] [--name] [--org] [--project] [--subscription] 

Параметры

Параметр Описание
repository Имя или идентификатор репозитория.
default-branch Укажите ветвь по умолчанию для репозитория. Пример: «refs/heads/live» или «live».
detect Автоматическое обнаружение организации. Допустимые значения: false , true .
name Новое имя репозитория.
org , organization URL-адрес организации Azure DevOps. Вы можете настроить организацию по умолчанию с помощью az devops configure -d organization= . Требуется, если не настроено по умолчанию или выбрано через конфигурацию Git. Пример: https://dev.azure.com/MyOrganizationName/ .
project , p Имя или идентификатор проекта. Проект по умолчанию можно настроить с помощью az devops configure -d project= . Требуется, если не настроено по умолчанию или выбрано через конфигурацию Git.
subscription Имя или идентификатор подписки Подписку по умолчанию можно настроить с помощью az account set -s .

Пример

Следующая команда переименовывает contosoREPO в contosoFabrikam для конфигурации az devops configure —defaults organization=https://dev.azure.com/fabrikamprime project=»Fabrikam Fiber» по умолчанию .

az repos show --repository contosoREPO --output table ID Name Default Branch Project ------------------------------------ ----------- ---------------- -------------- 30954ce5-417b-4930-b8d2-8b6cac934a34 contosoREPO main Fabrikam Fiber 

Для получения дополнительных сведений введите следующую команду:

az repos update --repository contosoREPO --name contosoFabrikam < "defaultBranch": "refs/heads/main", "id": "30954ce5-417b-4930-b8d2-8b6cac934a34", "isDisabled": false, "isFork": null, "name": "contosoFabrikam", "parentRepository": null, "project": < "abbreviation": null, "defaultTeamImageUrl": null, "description": "Guidance and source control to foster a vibrant ecosystem for Fabrikam Fiber applications and extensions.", "id": "56af920d-393b-4236-9a07-24439ccaa85c", "lastUpdateTime": "2021-05-24T21:52:14.95Z", "name": "Fabrikam Fiber", "revision": 438023732, "state": "wellFormed", "url": "https://dev.azure.com/fabrikamprime/_apis/projects/56af920d-393b-4236-9a07-24439ccaa85c", "visibility": "private" >, "remoteUrl": "https://fabrikamprime@dev.azure.com/fabrikamprime/Fabrikam%20Fiber/_git/contosoFabrikam", "size": 1627, "sshUrl": "git@ssh.dev.azure.com:v3/fabrikam/Fabrikam%20Fiber/contosoFabrikam", "url": "https://dev.azure.com/fabrikamprime/56af920d-393b-4236-9a07-24439ccaa85c/_apis/git/repositories/30954ce5-417b-4930-b8d2-8b6cac934a34", "validRemoteUrls": null, "webUrl": "https://dev.azure.com/fabrikamprime/Fabrikam%20Fiber/_git/contosoFabrikam" > 

Команды Интерфейса командной строки Azure DevOps не поддерживаются для Azure DevOps Server локальной среде.

Обновление удаленных приложений Git на компьютерах разработки

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

Каждый участник вашей команды должен обновить свои локальные репозитории Git, чтобы продолжить подключение со своих компьютеров разработки к репозиторию в проекте. В приведенных ниже инструкциях показано, как обновить удаленные репозитории Fabrikam Mobile , который был переименован в Fabrikam.

Получение нового URL-адреса для репозитория

  1. Выберите Репозитории, файлы. Просмотр файлов
  2. Выберите Клонировать в правом верхнем углу окна Файлы и скопируйте URL-адрес клонирования. Получение URL-адреса клонирования

Получение URL-адреса клонирования

  • Выберите Клонировать в правом верхнем углу окна Код и скопируйте URL-адрес клонирования.

Обновление удаленного репозитория в Visual Studio

Чтобы обновить удаленный репозиторий, выполните приведенные далее действия.

Снимок экрана: диалоговое окно

  1. В меню Git в строке меню выберите Управление удаленными репозиториями.
  2. В диалоговом окне Параметры выберите удаленный репозиторий для редактирования, а затем щелкните Изменить.
  3. Замените удаленные ссылки на получение и отправку URL-адресом, скопированным из удаленного репозитория.
  4. Нажмите кнопку Сохранить , а затем ОК , чтобы закрыть диалоговое окно Параметры .

Visual Studio 2019 версии 16.8 и более поздних версий предоставляет возможности управления версиями Git при сохранении пользовательского интерфейса Team Обозреватель Git. Чтобы использовать командную Обозреватель, снимитефлажокСервис> Параметры >Предварительный просмотр функций>Новый пользовательский интерфейс Git в строке меню. Вы можете использовать функции Git из любого интерфейса взаимозаменяемо.

Чтобы обновить удаленный репозиторий из Visual Studio Team Обозреватель, выполните следующие действия:

  1. Подключитесь к репозиторию. Подключение к репозиторию
  2. Откройте параметры проекта. Параметры проекта
  3. Откройте параметры репозитория. Параметры репозитория
  4. Измените получение и отправку удаленных ссылок и вставьте URL-адрес, скопированный из удаленного репозитория. Изменить удаленный репозиторий

Вопросы и ответы

Вопрос. Можно ли переименовать репозиторий еще раз? Можно ли повторно использовать старое имя репозитория?

Похожие статьи

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

Можно ли переименовать репозиторий в который уже загружены данные? Если да то как? Под репозиторием я понимаю когда заходишь в свой аккаунт и там вкладки:

Overview Repositories 1 Stars 1 Followers 0 Following 0 

И когда нажимаешь на Repositories там список репозиториев, который через $ git init инициализируем на локальной машине.

Отслеживать
34k 25 25 золотых знаков 130 130 серебряных знаков 222 222 бронзовых знака
задан 27 апр 2017 в 18:22
5,327 11 11 золотых знаков 58 58 серебряных знаков 117 117 бронзовых знаков
Что именно вы хотите переименовать? Локальный репозиторий или remote?
27 апр 2017 в 18:25

каталог, в котором располагается рабочая копия файлов, вполне можно переименовать. это же просто каталог.

Переименование репозитория

Вы можете переименовать любой репозиторий, если вы являетесь владельцем организации или имеете права администратора для репозитория.

When you rename a repository, all existing information, with the exception of project site URLs, is automatically redirected to the new name, including:

For more information on project sites, see «About GitHub Pages.»

In addition to redirecting web traffic, all git clone , git fetch , or git push operations targeting the previous location will continue to function as if made on the new location. However, to reduce confusion, we strongly recommend updating any existing local clones to point to the new repository URL. You can do this by using git remote on the command line:

git remote set-url origin NEW_URL 

If you plan to rename a repository that has a GitHub Pages site, we recommend using a custom domain for your site. This ensures that the site’s URL isn’t impacted by renaming the repository. For more information, see «About custom domains and GitHub Pages.»

Note: GitHub will not redirect calls to an action hosted by a renamed repository. Any workflow that uses that action will fail with the error repository not found . Instead, create a new repository and action with the new name and archive the old repository. For more information, see «Archiving repositories.»

Warning: If you create a new repository under your account in the future, do not reuse the original name of the renamed repository. If you do, redirects to the renamed repository will no longer work.

  1. On GitHub.com, navigate to the main page of the repository.
  2. Under your repository name, click

Settings. If you cannot see the «Settings» tab, select the

Screenshot of a repository header showing the tabs. The

dropdown menu, then click Settings.

GitHub: переименование множества файлов в репозитории

Я создал на веб-сервисе «GitHub» (далее я буду называть его «Гитхабом», чтобы можно было склонять) репозиторий, в который постепенно загружал файлы через веб-интерфейс, как по одному, так и группами. На данный момент в этом репозитории хранится около полутора сотен файлов в разных папках, в том числе с вложением папок разной глубины. Файлы имеют разные расширения.

Мне понадобилось переименовать сразу 157 файлов в описанном репозитории по следующему принципу:

00-00_имя-файла.ext # было 00-000_имя-файла.ext # стало, добавился '0'

В этом блоке кода показаны шаблоны. Вместо .ext могут быть разные расширения (в моем случае это расширения .cpp и .h ). Вместо имя-файла могут быть разные названия из нескольких слов, эти названия могут быть разной длины. Вместо 00-00 могут быть, например, следующие последовательности символов: 00-01 , 00-02 , . 01-00 , 01-01 , . 02-00 , 02-01 , 02-02 и так далее. То есть мне понадобилось расширить второй номер, который идет после дефиса, с двух разрядов до трех, поэтому мне нужно переименовать все файлы, добавляя символ 0 в указанное выше место в названии файлов.

Я знаю, как через веб-интерфейс «Гитхаба» можно переименовывать файлы по одиночке, об этом можно прочитать в отдельной статье документации «Гитхаба», но там не описано, как переименовать сразу множество файлов проекта. Быстро, одной операцией, это сделать у меня не получилось, поэтому я разбил задачу на несколько более простых пунктов.

План действий

  1. Клонировать репозиторий (создать копию) на свой компьютер;
  2. Написать скрипт для переименования множества файлов проекта и переименовать их;
  3. Создать коммит со всеми переименованиями;
  4. Отправить изменения в оригинальный репозиторий на «Гитхабе».

1. Клонирование репозитория на свой компьютер

Я работаю в операционной системе «Windows 10» и пользуюсь программой (системой управления версиями) «Git for Windows» из командной строки. В качестве программы-оболочки я использую «PowerShell» версии 7. В качестве программы-«эмулятора терминала» использую «Windows Terminal».

Клонирование (создание копии) репозитория с «Гитхаба» на мой компьютер (иногда я буду сокращать путь к текущему местоположению с помощью многоточия . , чтобы команда влезла в формат статьи):

PS C:\. \repos> git clone https://github.com/ilyachalov/learncpp-com-examples

Команде git clone просто передаём URL-адрес репозитория на «Гитхабе». Авторизация при этом не требуется. Насколько я понимаю, это потому, что этот мой репозиторий публичный. В результате этой команды в текущем местоположении создалась папка «learncpp-com-examples» с файлами репозитория. Для дальнейших действий удобнее перейти в эту папку и работать из нее.

PS C:\Users\Илья\source\repos> cd learncpp-com-examples PS C:\Users\Илья\source\repos\learncpp-com-examples>

Для удобства далее я буду обозначать это местоположение так:

PS ..\learncpp-com-examples>

2. Скрипт для переименования файлов и его применение

За основу скрипта я взял код из примера 4 статьи про командлет «Rename-Item» документации программы-оболочки «PowerShell». Я переписал тот код под свои нужды, добавил регулярные выражения и получил следующее:

файл «rename-files.ps1» (в кодировке UTF-8 без BOM, окончания строк CRLF)

Get-ChildItem -File -Recurse | Rename-Item -NewName

Данный скрипт просматривает только файлы (папки отбрасываются, это обеспечивается параметром -File командлета «Get-ChildItem»), начиная с текущей папки и вглубь, во вложенных папках (это обеспечивается параметром -Recurse командлета «Get-ChildItem»). Командлет «Get-ChildItem» отбирает все файлы, поэтому параметр -Path командлету «Get-ChildItem» не требуется, он опущен. Файлы, отобранные командлетом «Get-ChildItem», передаются по конвейеру | командлету «Rename-Item», который и выполняет переименования.

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

файл «rename-files.ps1» (в кодировке UTF-8 без BOM, окончания строк CRLF)

$total = 0 $renamed = 0 Get-ChildItem -File -Recurse | Rename-Item -NewName < $old = $_.Name $new = $old -replace '^(\d\d)-(\d\d)_(.*)', '$1-0$2_$3' $script:total++ if ($old -ne $new) < Write-Host "$old -->$new" $script:renamed++ > else < Write-Host "$new" >$new > "Проверено файлов всего: $total, из них переименовано: $renamed"

У меня есть более подробный разбор этого скрипта.

Для переименования файлов я поместил файл «rename-files.ps1» со скриптом в нужную папку клонированного репозитория и запустил его:

PS C:\Users\Илья\source\repos\learncpp-com-examples\chapters> .\rename-files rename-files.ps1 00-00_helloworld.cpp --> 00-000_helloworld.cpp 00-01_helloworld-wait.cpp --> 00-001_helloworld-wait.cpp 00-02_cpp17compat.cpp --> 00-002_cpp17compat.cpp 00-03_cpp20compat.cpp --> 00-003_cpp20compat.cpp 01-00_snippet.cpp --> 01-000_snippet.cpp . 02-98_io.cpp --> 02-098_io.cpp 02-98_main.cpp --> 02-098_main.cpp 02-99_io.cpp --> 02-099_io.cpp 02-99_io.h --> 02-099_io.h 02-99_main.cpp --> 02-099_main.cpp Проверено файлов всего: 158, из них переименовано: 157

После окончания переименования файл «rename-files.ps1» скрипта следует из папки проекта удалить, чтобы он не мешал при создании коммита.

3.1. Проверка настроек Git-репозитория

Перед созданием коммита, который позже попадет на «Гитхаб», имеет смысл проверить настройку имени автора коммита и адреса электронной почты автора коммита, если вы не хотите «светить» их в интернете.

Для проверки настроек Git-репозитория удобно использовать следующую команду из папки проекта (благодаря параметру —show-origin вы сможете увидеть, в каких файлах хранятся настройки Git-репозитория; часто разные настройки хранятся в разных файлах):

PS ..\learncpp-com-examples> git config --list --show-origin

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

PS ..\learncpp-com-examples> git config user.name Ilya Chalov PS ..\learncpp-com-examples> git config user.email почта@домен.ru

Имя у меня такое и зарегистрировано на «Гитхабе», а вот адрес электронной почты «светить» там не хотелось бы. «Гитхаб» по желанию пользователя создает для коммитов, выполняемых через веб-интерфейс, «служебный» адрес электронной почты, который «прикрывает» реальный адрес электронной почты пользователя.

Этот «служебный» адрес электронной почты можно посмотреть в настройках своей учетной записи на «Гитхабе» (меню «Settings / Emails», если заходить через свою аватарку в правом верхнем углу страниц веб-сервиса) по следующему URL-адресу (он сработает, если вы уже авторизованы на веб-сервисе):

Меню «Settings / Emails» (если заходить через свою аватарку) https://github.com/settings/emails

Меняю адрес электронной почты в настройках текущего (параметр —local ) Git-репозитория:

PS ..\learncpp-com-examples> git config --local user.email служебный@github.com

3.2. Создание коммита со всеми переименованиями

Команду git mv я не смог использовать для переименований, так как в ней, вроде бы, нельзя использовать регулярные выражения (можно использовать символы-джокеры, но их недостаточно). Однако, как пишут в известной книге про «Git», на самом деле команда git mv — это совмещение трех команд: 1) переименование файла средствами операционной системы или с помощью других программ, 2) git rm для файла с названием до переименования, 3) git add для файла с названием после переименования.

Пункт первый из трех вышеперечисленных я уже выполнил ранее с помощью своего скрипта «rename-files.ps1». Оставшиеся два пункта можно выполнить для всех 157 переименованных файлов одной следующей командой:

PS ..\learncpp-com-examples> git add --all

Теперь все изменения помещены в индекс и можно, наконец, создать коммит:

PS ..\learncpp-com-examples> git commit -m "Переименование группы файлов (157 штук)"

4. Отправка изменений в оригинальный репозиторий на «Гитхабе»

При отправке изменений в оригинальный репозиторий на «Гитхабе» потребуется авторизация. Когда я попытался ввести свой пароль, «Гитхаб» сообщил мне, что с 13 августа 2021 года аутентификация с помощью пароля больше не используется. Мне было предложено пройти в документацию по следующей ссылке и почитать про действующие способы аутентификации.

Я выбрал способ аутентификации с помощью токена доступа и создал гранулированный токен доступа (сейчас на «Гитхабе» есть две действующие реализации токенов доступа: старая (классическая) и новая (гранулированные токены доступа, по-английски «fine-grained access token»)). У меня есть отдельная подробная статья про создание гранулированного токена доступа. Использовать токен доступа несложно: при аутентификации его нужно просто ввести (вставить из буфера обмена) вместо пароля.

Отправляю изменения в оригинальный репозиторий на «Гитхабе»:

PS C:\Users\Илья\source\repos\learncpp-com-examples> git push origin main Username for 'https://github.com': ilyachalov Password for 'https://ilyachalov@github.com':

При вводе пароля (в моем случае — токена доступа) ввод не отражается в окне консоли, но в действительности происходит. Вероятно, такой подход принят в целях безопасности, чтобы никто из посторонних не мог увидеть длину вводимой последовательности символов.

Заключение

После отправки изменений на «Гитхаб» я открыл оригинальный репозиторий в браузере и проверил получение отправленного коммита. Всё получилось так, как я и планировал. Вот ссылка на коммит с переименованием сразу 157 файлов в оригинальном репозитории.

  • git
  • github
  • переименовать файлы
  • регулярные выражения
  • powershell
  • токен доступа

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *