Bir Git deposunu belirli bir klasöre nasıl klonlarsınız?
git clone git@github.com:whatever` komutunu çalıştırdığımda mevcut klasörümde bilmem ne adında bir dizin oluşturuyor ve Git deposunun içeriğini bu klasöre atıyor:
/httpdocs/whatever/public
Benim sorunum, Git deposunun içeriğinin web sunucusu için uygun konumda görünmesi için mevcut dizinime klonlanmasına ihtiyacım olması:
/httpdocs/public
Depoyu klonladıktan sonra dosyaları nasıl taşıyacağımı biliyorum, ancak bu Git'i bozuyor gibi görünüyor ve sadece git pull
çağırarak güncelleme yapabilmek istiyorum. Bunu nasıl yapabilirim?
2069
3
Seçenek A:
Ergo, "tam burada" kullanım için:
Seçenek B:
.git
klasörünü de taşıyın. .git
klasörünün çoğu grafik dosya gezgininde gizli olduğunu unutmayın, bu nedenle gizli dosyaları gösterdiğinizden emin olun.İlk satır tüm normal dosyaları, ikinci satır ise nokta dosyalarını alır. Dotglob'u etkinleştirerek (yani
shopt -s dotglob
) bunu tek satırda yapmak da mümkündür, ancak bu cevabın yanıtladığı soruyu soruyorsanız, bu muhtemelen kötü bir çözümdür.Daha da iyisi:
Çalışma kopyanızı başka bir yerde saklayın ve sembolik bir bağlantı oluşturun. Bunun gibi:
Sizin durumunuz için bu şöyle bir şey olabilir:
İstenirse test olarak kolayca değiştirilebilir, örn:
dosyaları hareket ettirmeden. Birinin bu satırları kopyalaması ihtimaline karşı
-fn
eklendi (-f
zorlayıcıdır,-n
ise mevcut ve mevcut olmayan bağlantılarla bazı istenmeyen etkileşimleri önler).Sadece çalışmasını istiyorsanız A seçeneğini kullanın, yaptığınız şeye başka biri bakacaksa C seçeneğini kullanın.
Bu soruyu soran pek çok kişinin peşinde olduğunu düşündüğüm örnek şudur. Eğer git deposunun içeriğinin dökülmesini istediğiniz dizindeyseniz *çalıştırın:
Sonundaki "." geçerli klasörü çıkış klasörü olarak belirtir.
Dosyaları istediğiniz yere taşıdığınızda,
.git
dizinini de taşıyor musunuz? İşletim sisteminize ve yapılandırmanıza bağlı olarak bu dizin gizli olabilir.Repo ve destekleyici dosyaları içerirken,
/public
dizininizdeki proje dosyaları yalnızca şu anda check-out commit'indeki sürümlerdir (varsayılan olarak master branch).