Як перейменувати сховище Git, створене за допомогою гітоліту?


85

Я створив сховище Git з використанням гітоліту. Тепер я хотів би перейменувати це сховище.

Як я можу це зробити?

У readme gitolite сказано, що я не повинен працювати безпосередньо на сервері. Але, мабуть, мені доведеться трохи попрацювати на сервері, так?


Гарне запитання та спасибі за коментар щодо моєї відповіді. Сьогодні мені потрібна була така відповідь;)

Відповіді:


135

Як зазначено в посібнику з основного адміністратора гітоліту :

перейменування репо

Це схоже; немає коду для цього gitolite. Що ви робите:

  • увійдіть на сервер cd $REPO_BASE(за замовчуванням:) cd ~/repositoriesта

    mv old-name.git new-name.git

  • назад на gitolite-адмін клон, редагувати conf/gitolite.confі замінити всі входження old-nameз new-name. Потім додайте, зафіксуйте та натисніть, як зазвичай.

Порядок цих 2 кроків важливий; не повертати їх назад :-)

Третій крок необхідний для гітоліту3:

  • відредагуйте файл gl-confу репозиторії та змініть ім'я сховища на нове

І звичайно, кожен користувач повинен оновити свою конфігурацію клону, щоб вказати на нову назву репо.


7
На gitolite3 вам також потрібно відредагувати gl-confта змінити назву сховища.
Фернандо Коррея

4
не забудьте встановити віддалену URL-адресу локальної копії репозитарію на нову назву:, git remote set-url git@your.server:new-name.gitпотім виконайте a, git fetchщоб переконатися, що помилок немає.
cneuro

Перші два кроки я зробив у неправильному порядку, перш ніж дійти до цієї відповіді. FYI це також спрацювало, просто повинен був rm -r new-name.gitперед mvкомандою.
Arnaud P

9

Я конкретно не знайомий з гітолітом, але один із підходів, який може спрацювати, це створити абсолютно нове сховище з правильним ім'ям, підсунути свій код до нього, а потім видалити старий.


З того, що я знаю, це повинно зберігати історію. +1

1
Видалення старого сховища, створення нового сховища та переміщення вмісту старого сховища в нове працює. Дякую!
Патрік

Ось команди для досягнення цього (передбачається, що NewRepo вже створено в Gitolite): // У старому репо $ git віддалено додаємо <remote-moniker> NewRepo $ git push --all --force NewRepo // У новому репо $ git pull Не потрібно зламати конфігурацію гітоліту, і вся історія збережена :)
Метью Скелтон

0

Використовуючи Greg Hewgill як ідею, ви, можливо, можете перейменувати сховище у файлі конфігурації. Можливо, ви захочете спробувати це спочатку на фіктивному сховищі. Я підозрюю, що старе ім’я буде видалено, нове буде створено, і вам потрібно оновити своє джерело локально, а потім натиснути.


На жаль, перейменування сховища у файлі конфігурації не працює. gitlolite додає нове сховище, але не видаляє старе. Однак використання ідеї Грега працює.
Патрік

@Patrick: Добре знати, мені не потрібно було перейменовувати або видаляти один.

-2

Чистий підхід полягає у створенні нового сховища як порожнього, а потім виконайте наступне:

Припускаючи, що старий - СТАРИЙ, а новий (порожній) - НОВИЙ:

# mkdir /tmp/1
# cd /tmp/1
# git clone OLD_REPO old
# git clone NEW_REPO new
# cd new
# git pull ../old
# git push origin master

Або ви можете використовувати безпосередньо віддалений репо для OLD:

# mkdir /tmp/1
# cd /tmp/1
# git clone NEW_REPO new
# cd new
# git pull OLD_REPO
# git push origin master

Це збереже всю історію і дозволить гітоліту обробляти свої внутрішні органи. Крім того, вам доведеться оновити gitolite-admin, але в порядку немає обмежень.

Це також працює віддалено без проблем.

Видалення сховища OLD слід виконувати відповідно до інструкцій гітоліту (локально).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.