Git kök klasörü nasıl yeniden adlandırılır?


86

Git'i Vista'da depom altında kullanmaya başladım /path/to/project/git repo.

Şimdi, klasör adındaki boşluğun git bash'da çalışırken küçük bir rahatsızlık olduğunu buldum.

Klasörü olarak yeniden adlandırabilir miyim /path/to/project/gitrepo? Git config içindeki her şey göreceli mi, yoksa açıkça ana klasöre atıfta bulunan herhangi bir şey var mı?

Ana klasörün bir Windows kopyasını almayı denedim ve bunun üzerinde git bash çalıştırdım ve 'git log' daha önce yaptığım değişiklikleri gösteriyor. Bu yüzden, ana klasörü yeniden adlandırmanın sorun olmadığını varsayıyorum, ancak daha ileri gitmeden önce emin olmak istiyorum.

Yanıtlar:


53

Biraz değişiklik için Greg 'in cevabı , evet, bir git repo ile her şey görelidir .gitüst dizinde ama:

(ve bu muhtemelen sizi doğrudan etkilemeyecektir, burada sadece bütünlük adına bu nedenlerden bahsediyorum.):

  • Deponun kendi yolu, bilgisayarınızda çalışan diğer hizmetler tarafından referans alınabilir (Apache, ssh, deponuzu uzak olarak bildiren başka bir depo, tam dosya yolunu kullanarak, depolarınızı belirli bir yolda açıklayan bir gitolit katmanı, ... )
  • Bazı işlemler deponun tam yolunu GIT_INDEX_FILEkullanır (örneğin bir filter-branchkomutun içinde kullanmak gibi, bu konuya bakın ), bu nedenle deponuzda karmaşık bir işlem gerçekleştirirken kök dizini yeniden adlandırmayın.

Ayrıca, bir "Windows kopyası" (a yerine git clone), kancalar dahil her şeyi kopyalayacaktır; bu, onları düzenlediyseniz ve bu tür değişiklikler yaptıysanız, komut dosyalarına mutlak yol içerebilir.


2
Bu nedenle, uygulayacağınızdan emin olmak için pratik ve açık adımlar varsa, bu çok uygulanabilir olacaktır.
ahnbizcad

@g: Depo klasörünü yeniden adlandırmanın yanında hangi adım?
VonC

88

Evet, bir Git deposu içeren klasörü yeniden adlandırmak güvenlidir. Git deposundaki tüm yollar görelidir.


4

Lütfen önce yorumları kontrol edin ...

Kanımca en iyisi git iş akışını kullanmaktır , özellikle bir git sunucusu (uzak ana depo) kullandığınızda, yani:

  • senin git sunucu ile senkronize eski dizini almak ( git pull, git pushve sonunda git statusher şeyin yolunda olup olmadığını görmek için)
  • git clone <former directory> <new directory>

(Ben de GIT'de yeni olduğum için, bu tam ve doğru cevap olmayabilir. Mick ile aynı soruyu sormuştum ve öğrenme amacıyla git yöntemiyle yapmaya çalıştım :) İpucu için teşekkürler, vonC! Lütfen gerekirse beni düzeltin :)


1
Eğer sen git clone <former directory> <new directory>, <new directory>ilkini yaratmana gerek yok . git cloneSizin için oluşturur.
VonC

3
Bunun istediğini yaptığını sanmıyorum. Bu orijinini ayarlar <new directory>için <old directory>. Yani bir git remote -vin <new directory>gösterecekti origin C:/old/directory.
kvu787

1
@ Kvu787'ye katılıyorum, bu istenen gibi gelmiyor ve muhtemelen tonlarca soruna neden olacak.
alkanen

@ kvu787 @alkanen, Bir kullanıcının önerdiği işe yarıyor mu: git remote rm origin- eski dizininizi yeni temsilcinizin kaynağı olarak kaldırmak ve - cd .. and rm -rf <former directory>eski dizini silmek
PythoNic

@PythoNic, eski deponun "origin" adında bir uzaktan kumandası varsa, o zaman hayır, bu sorun olmaz çünkü yeni deponuzda artık o uzaktan kumanda olmayacaktı. Aksi takdirde, bu iyi olur, ancak klasörü yeniden adlandırmak daha kolay olacaktır.
kvu787

0

evet onu değiştirebilirsiniz. deponuz hala git'inize yönlendiriyor .. sadece .git fo adını kaldırmayın / düzenlemeyin

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.