Git deposunu nasıl yeniden adlandırabilirim?


435

git mvdepodaki bir dosyayı veya dizini yeniden adlandırır. Git deposunun kendisini nasıl yeniden adlandırabilirim?


1
mv`` Havuz sunucumda '' PROJ0.git'i yeniden adlandırmak için kullanmayı denedim , işe yarıyor. Ama bunun doğru, yani geçerli olup olmadığını bilmiyorum.
Yantao Xie

5
Sorunuz iyi. Git depoları vardır ve projenizi git deposuna yerleştirmeye karar verirseniz Eclipse projeleri gibi projeler içerebilir. İstediğiniz buysa, aşağıdaki anwswer'de bunu nasıl yapacağınızı görün.
Danny Remington - OMS

3
githavuz adının belirtilmesi için herhangi bir hüküm yoktur. Kök dizin adı, havuz adıyla ilgili tek hakikat kaynağıdır . .git/descriptionGerçi gibi bazı uygulamalar tarafından kullanılır dosyaGitweb
Ujjwal Singh

Yanıtlar:


620

Git deposunu yeniden adlandırarak ne anlama geldiğinin çeşitli olası yorumları vardır: görüntülenen ad, havuz dizini veya uzak havuz adı. Her biri yeniden adlandırmak için farklı adımlar gerektirir.

görüntülenen isim

Görüntülenen adı yeniden adlandırın (örneğin, ile gösterilir gitweb):

  1. Düzenleme .git/descriptiondeponun adını içerecek.
  2. Dosya 'yı kaydet.

Havuz Dizini

Git, depoyu içeren dizinin adına kullanıldığı git clone master childşekliyle başvurmaz, bu nedenle sadece yeniden adlandırabiliriz:

  1. Bir komut istemi (veya dosya yöneticisi penceresi) açın.
  2. Havuz dizinini içeren dizine geçin (yani, depo dizininin içine gitmeyin).
  3. Dizini yeniden adlandırın (örneğin, mvkomut satırından veya F2bir GUI'den kısayol tuşunu kullanarak).

Uzak Havuz

Uzak bir deposu aşağıdaki gibi yeniden adlandırın:

  1. Uzak ana bilgisayara gidin (örneğin, https://github.com/User/project ).
  2. Projeyi yeniden adlandırmak için ana bilgisayarın talimatlarını izleyin (ana bilgisayardan ana bilgisayara farklılık gösterir, ancak genellikle Ayarlar iyi bir başlangıç ​​noktasıdır).
  3. Yerel depo dizininize gidin (yani, bir komut istemi açın ve depo dizinine geçin).
  4. Yeni URL'yi belirleme (örneğin, git@github.com:User/project-new.git)
  5. Git'i kullanarak yeni URL'yi ayarlayın:

    git remote set-url origin git@github.com:User/project-new.git
    

3
İkinci durumda, depoyu zaten klonlayana ne olur?
Frederico Schardong

3
Kötü bir şey yok. Orijinal adı koruyorlar, ancak uzaktan kumandaları artık yanlış: güncellemeleri almak istiyorlarsa yeni isme bağlanmaları gerekiyor. Hem siz hem de onlar senkronize ediliyorsa veya merkezi bir havuzsa orijinal adını koruyacak ve her şey çalışmaya devam edecektir
Alex Brown

14
Alt modülleri kullanırsanız ikinci durumda "git bu dizin adına başvurmaz" ifadesinin yanlış olduğunu unutmayın: git alt modüllere başvurmak için mutlak bir yol kullanır, bu nedenle havuz dizininizin yeniden adlandırılması alt modüllerin bozulmasına neden olur. Bkz. Stackoverflow.com/questions/10144149/…
Edward

Windows GUI için GitHub kullanıyorum ve .git / description dosyasını değiştirmek zorunda kalmadım (bir tane yok). Başlangıç ​​noktasını sıfırlamanın son adımını yaptıktan sonra GUI'de görüntülenen ad değişti.
Joe Ernst

4
İnsanlar .git / açıklamadan bahsetmeye devam ediyorlar, ancak repoyu yeniden adlandırmak için gerçekte ne tür bir değişiklik yaptığınıza dair hiçbir söz
vermeden

24

Git deposunun adı yok. İsterseniz çalışma ağacınızı içeren dizini yeniden adlandırabilirsiniz.


7
Evet, git deposunun bir adı var. Yeniden adlandırdıktan sonra bu hatayı aldım:$ git status fatal: Not a git repository: C:/xxx/.git/xxx fatal: git status --porcelain failed
Sawny

@Sawny, bunun bir şeyle ne ilgisi olduğunu anlamıyorum.
Tobu

19
Bir git repo dozunun adı olmadığını söyledin, ama bu doğru değil. Submoduels kullanıyorsanız ve sadece klasörü yeniden adlandırırsanız git'ten hatalar alırsınız. Bkz. Stackoverflow.com/questions/9878860/…
Sawny

6
Tamam, bir alt modülün git deposundaki yolu önemlidir. Bu doğru ama bu özel soru ile ilgili değil.
Tobu

5
Tabii ki depoların bir adı var. Nasıl değiştirileceğini aşağıda görebilirsiniz.
Danny Remington - OMS

19

Rename PRJ0.gitiçin PROJ1.gitdaha sonra yer alan URL değişkeni düzenlemek, .git/configprojenizin dosyası.


15

Yeni bir depoda, örneğin $ git inita'dan sonra .git dizini .git / description dosyasını içerecektir.

Bu şöyle görünür:

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

Bunu yerel depoda düzenlemek, uzaktan kumandada değiştirmez.


Alex Brown'ın yanıtı senin
Yantao Xie

13

Deponuzu yeniden adlandırmak istiyorsanız, deponuza gidin ve "admin" i tıklayın, ardından yeniden adlandırın.

Gökyüzünün düşmesi ve diğer şeyler hakkında sizi uyaran kırmızı kutuyu gördüğünüzde bu soruyu okuyun .


12
Başkalarının bunun Github'a özgü bir öneri olduğunu ve genel olarak Git için geçerli olmadığını belirtmelerine yardımcı olabilir.
founddrama

1
Ocak 2013 itibariyle, github talimatları şu şekilde olmalıdır: (github'a giriş yapın), repolarınıza gidin, ardından "Ayarlar" >> "Seçenekler" e gidin ve orada bir Yeniden Adlandır düğmesi arayın. Kötü şeyler hakkında kırmızı uyarılar konusunda, Drooganlar diğerine bağlanır, bu yüzden soru hala şiddetle tavsiye edilir.
pestofago

12

GitHub hesabınızın herhangi bir havuzunu yeniden adlandırmak için:

  1. Yeniden adlandırmak istediğiniz o depoya gidin
  2. Ayarlar sekmesine gidin
  3. Burada, havuz adı bölümünde, koymak istediğiniz yeni adı yazın ve Tamam'ı tıklayın. Rename

GitHub sorusu değil, bu git ile ilgili.
robrecord

10

GitLab veya GitHub kullanıyorsanız, bu dosyaları grafik olarak değiştirebilirsiniz.

GitLab kullanma

Proje ayarlarınıza gidin . Orada projenin adını değiştirebilir ve en önemlisi deponuzu yeniden adlandırabilirsiniz (o zaman tehlike bölümüne girmeye başlarsınız).

Bu yapıldıktan sonra, yerel istemci yapılandırmaları kullanılarak güncellenmelidir.

git remote set-url origin sshuser@gitlab-url:GROUP/new-project-name.git

9
  • Sunucu tarafında, havuzu her zamanki gibi mv komutuyla yeniden adlandırın :

    mv oldName.git newName.git
    
  • Ardından istemci tarafında [remote "origin"]URL'nin değerini yenisiyle değiştirin:

    url=example.com/newName.git
    

Benim için çalıştı.


8

Eclipse'deyseniz ve Egit'i yüklediyseniz, aşağıdakileri yaparak bir projeyi içeren havuzu yeniden adlandırabilirsiniz:

1) Eclipse'de : Depodaki tüm projeleri kapatın.

2) Dosya sisteminde : Depoyu içeren dizini / klasörü bulun.

3) Dosya sisteminde : Depoyu içeren dizini / klasörü yeniden adlandırın.

4) Dosya sisteminde : Depoyu içeren dizini / klasörü açın ve yeniden adlandırmak istediğiniz projenin proje dizinini / klasörünü, projenin yeni adıyla eşleşecek şekilde yeniden adlandırın. (Bu gerekli değildir, ancak Eclipse'deki proje adı ile depodaki proje dizini / klasörü arasında tutarlılık sağlar.)

5) Eclipse : depoda ama emin için gereken tüm projeleri sil DEĞİL 'dosya sisteminden içeriğini silin' onay kutusunu işaretleyin. (Proje artık dosya sisteminin içeriğinin doğru konumunu içermemelidir, bu nedenle veriler her durumda silinemez, ancak üzülmektense güvende olmak daha iyidir.)

6) Eclipse'de : Menüden Dosya | İçe Aktar ... seçeneğini seçin.

7) Eclipse : İletişim kutusunda 'Git' klasörünü açın, 'Git'ten Projects'i seçin ve' Next'i tıklayın.

8) Eclipse : İletişim kutusunda 'Local' seçeneğini seçin ve 'Next' düğmesini tıklayın.

9) Eclipse'de : İletişim kutusunda 'Add ...' düğmesine tıklayın.

10) Eclipse : İletişim kutusunda, deponun yanındaki onay kutusunun işaretli olduğundan emin olun ve 'Finish'i tıklayın.

11) Eclipse'de : İletişim kutusunda havuzu seçin ve 'Next'i tıklayın.

12) Eclipse : İletişim kutusunda 'Varolan projeleri içe aktar' radyo düğmesini seçin, "Çalışma Dizini" ni seçin ve 'İleri'yi tıklayın.

13) Eclipse : İletişim kutusunda üzerinde çalışmak istediğiniz projelerin yanındaki onay kutularını işaretleyin ve 'Finish'e tıklayın.

14) Tutulma : İstenirse depodaki projeleri yeniden adlandırın. (Eclipse ve dosya sistemi arasındaki tutarlılık için, onlara depo dizini / klasörü içindeki proje dizini / klasörü ile aynı adı verin.)


+1 (eğlenerek ve Eclipse'de bunun için 14 adım gerekli değil, özellikle '
Egit'i

7

Git'in depo adını belirtme hükmü yoktur. Kök yöneticinin adı, depo adıyla ilgili tek hakikat kaynağıdır.

.git/descriptionGerçi sadece gibi bazı uygulamalar, tarafından kullanılır GitWeb .


5

İçin Amazon AWS codecommit kullanıcıları,

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

Referans: burada


4

Basit olmak için, bu Eclipse Projesini kaldırın (diskteki içeriği seçmeyin), ardından projeyi tekrar içe aktarın.

Eclipse, Git'e bağlı projeyi tanımlayacak ve Git perspektif görünümüne yerleştirecektir.

Mucizevi şekilde çalışır.


5
Bu asıl soruya cevap vermiyor.
mjuarez

Bu cevap Danny Remington - OMS'nin cevabı için bir yorum mu?
Peter Mortensen

4

Github ile Uzaktan Kumanda Olarak

Github'da Uzak Repo'yu Yeniden Adlandırma

Uzak depo ile ilgili olarak, deponuzu uzaktan kaydetmek / dağıtmak için sunucu konumu olarak Github veya Github Enterprise kullanıyorsanız, depoyu doğrudan repo ayarlarında yeniden adlandırabilirsiniz.

Ana repo sayfasından, ayarlar sekmesi sağda ve repo adı sayfadaki ilk öğedir:

resim açıklamasını buraya girin

Github, istekleri yeni URL'ye yönlendirir

Bir repoyu yeniden adlandırdığınızda Github'daki çok güzel bir özellik, Github'un eski repo adını ve ilgili tüm URL'leri kaydedip trafiği yeni URL'lere yönlendirmesidir . Kullanıcı adınız / kuruluşunuz ve repo adınız URL'nin bir parçası olduğundan, yeniden adlandırma URL'yi değiştirir.

Github eski repo adını kaydettiğinden ve istekleri yeni URL'lere yönlendirdiğinden, herhangi biri sorunlara, wiki'ye, yıldızlara veya takipçilere erişmeye çalışırken eski repo adına dayalı bağlantılar kullanırsa, Github web sitesindeki yeni konuma gelmeye devam eder. Github ayrıca Git komutları gibi düşük seviyede yönlendirir git clone, git fetchvs.

Repoyu Yeniden Adlandırma Github Yardımı'nda daha fazla bilgi bulunmaktadır.

Yerel Repo Adını Yeniden Adlandırma

Diğerlerinin de belirttiği gibi, deponuzun yerel "adı" genellikle kök klasör / dizin adı olarak kabul edilir ve klasörü değiştirebilir, klasörü herhangi bir konuma taşıyabilir veya kopyalayabilirsiniz ve bu depoyu hiç etkilemez.

Git yalnızca kök klasör içindeki dosyalar için endişelenecek şekilde tasarlanmıştır.


"Birisi eski repo adına dayalı bağlantılar kullanıyorsa ... yine de Github web sitesindeki yeni konuma ulaşacaklar". Evet, böyle bir özellik var. Aynı şey BitBucket için de geçerlidir: community.atlassian.com/t5/Bitbucket-questions/… . Eski isme yapılan herhangi bir referansın tamamen nasıl yok edileceğini bilmek güzel olurdu, çünkü benim anlayışım yeniden adlandırmak değil, kopyalamak. (Tüm eski şeyleri yok ederek) tam yeniden adlandırma için doğru prosedürü bilmek güzel olurdu.
Alexander Samoylov

@AlexanderSamoylov Ben sadece burada tahmin ediyorum, ama içtenlikle eski formatta bir şey kaydedildiğinden şüphe ediyorum. Github sadece eski arşiv adını saklı tutmalı ve eski arşiv adında gelen trafiği yeni arşiv adına yönlendirmelidir. yani https://github.com/oldrepo/some_path, https://github.com/newrepo/some_pathher şeyin taşındığı yere yönlendirilecektir . Tek dezavantajı, eski repo adının kalıcı olarak rezerve edilmesi gerekir, bu yüzden yeniden kullanılamaz (ayrıca eski URL'ye erişmiş olan kişileri önlemek için de iyidir).
LightCC



0

Git deposunu tarayıcıda açın, "Setttings" e gidin, yeniden adlandır düğmesini görebilirsiniz.

Yeni "Havuz Adı" girin ve "Yeniden Adlandır" düğmesini tıklayın.


0

Bunun yerine proje adınızı değiştirmeyi ve varolan Git'i yeniden başlatmak için package.jsonkomut çalıştırmayı denediniz mi git init?

Mevcut Git geçmişiniz var olmaya devam edecek.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.