Jak zmienić nazwę repozytorium Git?

433

git mvzmienia nazwę pliku lub katalogu w repozytorium. Jak zmienić nazwę samego repozytorium Git?

Yantao Xie
źródło
1
Próbowałem mvzmienić nazwę PROJ0.git na moim hoście `repozytoriów ', to działa. Ale nie wiem, czy to prawda, to znaczy ważne.
Yantao Xie
5
Twoje pytanie jest w porządku. Git ma repozytoria i mogą zawierać projekty takie jak Eclipse, jeśli zdecydujesz się umieścić swój projekt w repozytorium git. Jeśli tego właśnie chciałeś, zobacz, jak to zrobić w odpowiedzi poniżej.
Danny Remington - OMS
3
gitsam nie ma przepisu określającego nazwę repozytorium. Nazwa katalogu głównego jest jedynym źródłem prawdy odnoszącym się do nazwy repozytorium. .git/descriptionPlik chociaż jest stosowany tylko przez niektóre aplikacje jakGitweb
Ujjwal Singh

Odpowiedzi:

620

Istnieją różne możliwe interpretacje pojęcia zmiany nazwy repozytorium Git: wyświetlana nazwa, katalog repozytorium lub nazwa zdalnego repozytorium. Każdy wymaga różnych kroków, aby zmienić nazwę.

Wyświetlana nazwa

Zmień nazwę wyświetlanej nazwy (na przykład pokazanej przez gitweb):

  1. Edytuj, .git/descriptionaby zawierał nazwę repozytorium.
  2. Zapisz plik.

Katalog repozytoriów

Git nie odwołuje się do nazwy katalogu zawierającego repozytorium, tak jak go używa git clone master child, więc możemy po prostu zmienić jego nazwę:

  1. Otwórz wiersz polecenia (lub okno menedżera plików).
  2. Przejdź do katalogu zawierającego katalog repozytorium (tzn. Nie wchodź do samego katalogu repozytorium).
  3. Zmień nazwę katalogu (na przykład używając mvz wiersza poleceń lub F2skrótu z GUI).

Zdalne repozytorium

Zmień nazwę zdalnego repozytorium w następujący sposób:

  1. Przejdź do zdalnego hosta (na przykład https://github.com/User/project ).
  2. Postępuj zgodnie z instrukcjami hosta, aby zmienić nazwę projektu (różni się w zależności od hosta, ale zazwyczaj Ustawienia są dobrym punktem wyjścia).
  3. Przejdź do katalogu lokalnego repozytorium (tj. Otwórz wiersz polecenia i przejdź do katalogu repozytorium).
  4. Określ nowy adres URL (na przykład [email protected]:User/project-new.git)
  5. Ustaw nowy adres URL za pomocą Git:

    git remote set-url origin [email protected]:User/project-new.git
    
Alex Brown
źródło
3
W drugim przypadku, co stanie się z kimś, kto już sklonował repozytorium?
Frederico Schardong
3
Nic złego. Zachowują oryginalną nazwę, ale ich pilot jest teraz niepoprawny: jeśli chcą pobrać aktualizacje, muszą połączyć się z nową nazwą. Jeśli zarówno Ty, jak i oni synchronizujecie się lub centralne repozytorium, zachowa oryginalną nazwę i wszystko będzie nadal działać
Alex Brown
14
Zauważ, że twierdzenie „git nie odwołuje się do tej nazwy katalogu” w drugim przypadku jest błędne, jeśli używasz submodułów: git używa bezwzględnej ścieżki do odwoływania się do submodułów, więc zmiana nazwy katalogu repozytorium spowoduje uszkodzenie submodułów. Zobacz stackoverflow.com/questions/10144149/…
Edward
Korzystam z interfejsu GUI GitHub dla Windows i nie musiałem zmieniać pliku .git / description (nie mam go). Nazwa wyświetlana w GUI zmieniła się po tym, jak zrobiłem ostatni krok resetowania źródła.
Joe Ernst
4
Ludzie ciągle wspominają .git / description, ale bez żadnej wzmianki o tym, co faktycznie wprowadziłeś, aby zmienić nazwę repo
programista Unextraordinair
24

Repozytorium Git nie ma nazwy. Jeśli chcesz, możesz po prostu zmienić nazwę katalogu zawierającego twoje drzewo robocze.

Tobu
źródło
7
Tak, repozytorium git ma nazwę. Ten błąd pojawił się po zmianie nazwy:$ git status fatal: Not a git repository: C:/xxx/.git/xxx fatal: git status --porcelain failed
Sawny,
@Sawny, nie rozumiem, co to ma z tym wspólnego.
Tobu,
19
Powiedziałeś, że dawka git repo nie ma nazwy, ale to nieprawda. Jeśli użyjesz submodułów i po prostu zmienisz nazwę folderu, otrzymasz błędy z git. Zobacz stackoverflow.com/questions/9878860/…
Sawny,
6
Dobra, ścieżka submodułu w repozytorium git ma znaczenie. To prawda, ale nie dotyczy tego konkretnego pytania.
Tobu,
5
Oczywiście repozytoria mają nazwy. Zobacz poniżej, jak to zmienić.
Danny Remington - OMS
19

Zmień nazwę PRJ0.gitna PROJ1.git, a następnie edytuj zmienną URL znajdującą się w .git/configpliku twojego projektu.

Alex
źródło
15

W nowym repozytorium, na przykład, po a $ git init, katalog .git będzie zawierał plik .git / description.

Który wygląda tak:

Unnamed repository; edit this file 'description' to name the repository.

Edycja tego w lokalnym repozytorium nie zmieni tego na pilocie.

mholm815
źródło
Odpowiedź Alexa Browna obejmowała twoje.
Yantao Xie
13

Jeśli chciałeś zmienić nazwę swojego repozytorium, przejdź do repozytorium i kliknij „admin”, a następnie zmień nazwę.

Gdy zobaczysz czerwone pole ostrzegające o opadaniu nieba i innych rzeczach, przeczytaj to pytanie .

Droogany
źródło
12
Może pomóc innym zauważyć, że jest to sugestia specyficzna dla Github i nie dotyczy ogólnie Git.
founddrama
1
od stycznia 2013 r. instrukcje github powinny być teraz: (zaloguj się do github), przejdź do repozytorium, a następnie przejdź do „Ustawienia” >> „Opcje” i znajdź tam przycisk Zmień nazwę. Jeśli chodzi o czerwone ostrzeżenia o złych rzeczach, Droogany łączą się z innymi, więc pytanie jest nadal wysoce zalecane.
pestofagiczny
12

Aby zmienić nazwę dowolnego repozytorium swojego konta GitHub:

  1. Przejdź do tego konkretnego repozytorium, którego nazwę chcesz zmienić
  2. Przejdź do karty ustawień
  3. Tam, w sekcji nazwy repozytorium, wpisz nową nazwę, którą chcesz umieścić i kliknij Rename
Neha Kumari
źródło
To nie jest pytanie GitHub, chodzi o git.
robrecord
10

Jeśli używasz GitLab lub GitHub, możesz zmodyfikować te pliki graficznie.

Korzystanie z GitLab

Idź do projektu Ustawienia . Tam możesz zmodyfikować nazwę projektu, a co najważniejsze, możesz zmienić nazwę swojego repozytorium (wtedy zaczniesz wchodzić w sekcję dotyczącą zagrożeń).

Po wykonaniu tej czynności konfiguracje klientów lokalnych należy zaktualizować za pomocą

git remote set-url origin sshuser@gitlab-url:GROUP/new-project-name.git
avi.elkharrat
źródło
9
  • Po stronie serwera wystarczy zmienić nazwę repozytorium za pomocą komendy mv, jak zwykle:

    mv oldName.git newName.git
    
  • Następnie po stronie klienta zmień wartość [remote "origin"]adresu URL na nowy:

    url=example.com/newName.git
    

To zadziałało dla mnie.

Parison
źródło
8

Jeśli jesteś w Eclipse i zainstalowałeś Egit, możesz zmienić nazwę repozytorium zawierającego projekt, wykonując następujące czynności:

1) W środowisku Eclipse : Zamknij wszystkie projekty znajdujące się w repozytorium.

2) W systemie plików : Znajdź katalog / folder zawierający repozytorium.

3) W systemie plików : Zmień nazwę katalogu / folderu zawierającego repozytorium.

4) W systemie plików : Otwórz katalog / folder zawierający repozytorium i zmień nazwę katalogu / folderu projektu dowolnego projektu, którego nazwę chcesz zmienić, aby pasował do nowej nazwy projektu. (Nie jest to wymagane, ale zapewnia spójność między nazwą projektu w Eclipse a katalogiem / folderem projektu w repozytorium).

5) W Eclipse : Usuń wszystkie projekty znajdujące się w repozytorium, ale NIE zaznaczaj pola wyboru „Usuń zawartość z systemu plików”. (Projekt nie powinien już zawierać poprawnej lokalizacji zawartości systemu plików, aby dane nie mogły zostać usunięte w żadnym wypadku, ale lepiej być bezpiecznym niż żałować).

6) W Eclipse : Z menu wybierz opcję Plik | Importuj ...

7) W Eclipse : W oknie dialogowym otwórz folder „Git”, wybierz „Projekty z Git” i kliknij „Dalej”.

8) W Eclipse : W oknie dialogowym wybierz „Lokalny” i kliknij „Dalej”.

9) W środowisku Eclipse : W oknie dialogowym kliknij przycisk „Dodaj ...”.

10) W Eclipse : W oknie dialogowym upewnij się, że pole wyboru obok repozytorium jest zaznaczone i kliknij „Zakończ”.

11) W Eclipse : W oknie dialogowym wybierz repozytorium i kliknij „Dalej”.

12) W Eclipse : w oknie dialogowym wybierz przycisk radiowy „Importuj istniejące projekty”, wybierz „Katalog roboczy” i kliknij „Dalej”.

13) W Eclipse : W oknie dialogowym zaznacz pole wyboru obok projektów, nad którymi chcesz pracować, i kliknij „Zakończ”.

14) W Eclipse : Zmień nazwę wszystkich projektów znajdujących się w repozytorium, jeśli jest to pożądane. (Aby zachować spójność między Eclipse a systemem plików, nadaj im taką samą nazwę jak katalog / folder projektu w katalogu / folderze repozytorium).

Danny Remington - OMS
źródło
+1 (rozbawiony i nie zaskoczony 14 krokami wymaganymi do tego w Eclipse, szczególnie „jeśli zainstalowałeś Egit”, co pociąga za sobą jeszcze kilkadziesiąt kroków ...)
Jack Wasey
7

Sam Git nie ma przepisu określającego nazwę repozytorium. Nazwa katalogu głównego jest jedynym źródłem prawdy odnoszącym się do nazwy repozytorium.

.git/descriptionChociaż jest stosowany tylko przez niektóre aplikacje, jak gitweb .

Ujjwal Singh
źródło
5

W przypadku użytkowników Amazon AWS codecommit

aws codecommit update-repository-name --old-name MyDemoRepo --new-name MyRenamedDemoRepo

Odniesienie: tutaj

Skrajny
źródło
4

Mówiąc prościej, po prostu usuń projekt Eclipse (nie wybieraj zawartości na dysku), a następnie ponownie zaimportuj projekt.

Eclipse zidentyfikuje projekt podłączony do Git i umieści go w widoku perspektywicznym Git.

To działa jak urok.

Richard
źródło
5
To nie odpowiada na pierwotne pytanie.
mjuarez
Czy ta odpowiedź jest komentarzem dla Danny'ego Remingtona - odpowiedź OMS ?
Peter Mortensen,
4

Z Github jako twoim pilotem

Zmiana nazwy Remote Repo w Github

Jeśli chodzi o zdalne repozytorium, jeśli używasz Github lub Github Enterprise jako lokalizacji serwera do zdalnego zapisywania / dystrybucji repozytorium, możesz po prostu zmienić nazwę repozytorium bezpośrednio w ustawieniach repo.

Na głównej stronie repozytorium karta ustawień znajduje się po prawej stronie, a nazwa repo to pierwszy element na stronie:

wprowadź opis zdjęcia tutaj

Github przekieruje żądania na nowy adres URL

Jedną z bardzo fajnych funkcji w Github po zmianie nazwy repo jest to, że Github zapisze starą nazwę repo i wszystkie powiązane adresy URL i przekieruje ruch na nowe adresy URL . Ponieważ nazwa użytkownika / organizacji i nazwa repozytorium są częścią adresu URL, zmiana nazwy spowoduje zmianę adresu URL.

Ponieważ Github zapisuje starą nazwę repozytorium i przekierowuje żądania do nowych adresów URL, jeśli ktokolwiek użyje linków opartych na starej nazwie repozytorium, próbując uzyskać dostęp do problemów, wiki, gwiazd lub obserwujących, nadal dotrze do nowej lokalizacji na stronie Github. Github przekierowuje również niższy poziom poleceń Git podoba git clone, git fetchitp

Więcej informacji znajduje się w pomocy Github na temat zmiany nazwy repozytorium

Zmiana nazwy lokalnej repozytorium

Jak wspomnieli inni, lokalna „nazwa” repozytorium jest zwykle uważana za nazwę folderu głównego / nazwy katalogu i można go zmienić, przenieść lub skopiować folder w dowolne miejsce i w ogóle nie wpłynie to na repozytorium.

Git został zaprojektowany tak, aby martwić się tylko plikami w folderze głównym.

LightCC
źródło
„jeśli ktoś użyje linków opartych na starej nazwie repozytorium ... nadal dotrze do nowej lokalizacji na stronie Github”. Tak, jest taka funkcja. To samo dotyczy BitBucket: community.atlassian.com/t5/Bitbucket-questions/… . Byłoby miło wiedzieć, jak całkowicie zniszczyć wszelkie odniesienia do starej nazwy, ponieważ według mnie nie jest to zmiana nazwy, ale kopiowanie. Byłoby miło poznać prawidłową procedurę pełnej zmiany nazwy (z niszczeniem wszystkich starych rzeczy).
Alexander Samoylov
@AlexanderSamoylov Po prostu zgaduję tutaj, ale szczerze wątpię, aby cokolwiek zostało zapisane w starym formacie. Github powinien po prostu zachować rezerwę starej nazwy archiwum i przekierowywać wszelki ruch przychodzący ze starej nazwy archiwum do nowej nazwy archiwum. tj. https://github.com/oldrepo/some_pathpo prostu przekieruje do https://github.com/newrepo/some_path, gdzie wszystko zostało przeniesione. Jedynym minusem powinno być to, że stara nazwa repozytorium jest na stałe zarezerwowana, więc nie można jej ponownie użyć (również dobrze, aby uniknąć dostępu do niej osób, które uratowały stary adres URL).
LightCC
3

Główna zmiana nazwy jest tutaj (img 1), ale także zmień readme.md (img 2)

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

POPIÓŁ
źródło
7
Pytanie dotyczy raczej git niż github.
Yantao Xie
nie zmienił nazwy, tak
Manjitha teshara,
0

Otwórz repozytorium git w przeglądarce, przejdź do „Ustawień”, możesz zobaczyć przycisk zmiany nazwy.

Wprowadź nową „Nazwę repozytorium” i kliknij przycisk „Zmień nazwę”.

bshr
źródło
0

Czy zamiast tego próbowałeś zmienić nazwę projektu package.jsoni wykonać polecenie, git initaby ponownie zainicjować istniejącego Gita?

Twoja istniejąca historia Gita będzie nadal istnieć.

priyabagus
źródło
-2

Działa to dla mnie w systemie Windows 10 za pomocą wiersza polecenia:

git checkout <oldname>
git branch -m <newname>

Od Jak zmienić nazwę lokalnego i zdalnego oddziału Git

To było tylko lokalne repozytorium (nie na żadnym pilocie).

emery.noel
źródło