Temel Unix komutlarını kullanarak bir git deposunu kopyalamak (klonlamamak) uygun mudur?


22

Ben budala kullanarak için oldukça yeni ve (gibi ortak UNIX komutları ile Git depo kopyalamak için uygun olup olmadığını merak cpveya tar/ untag) yerine kullanmak yerine, git clone.

Bazı kodların içinde gitmiş olduğu üretim ortamımın (python virtual) olduğu durumdayım. Bir ortamı kullanarak bütün çevreyi kopyalamak için git perspektifinden kötü bir fikir olup olmadığını merak ediyorum tar. Bu yaklaşım bir kod temeli / ortamın hızlı bir kopyasını almak için uygun olacaktır.

Benim endişem, belki git klonunun, biri diğerinden dosya kopyalandığında iki çalışan kopya varsa, çakışmalara yol açabilecek bazı benzersiz kimlikleri çalışan kopyayla ilişkilendirmesidir.


Vay bu durumdaydım çünkü bazı dosyalar kaynak kontrolü altındaydı ve bazıları yoktu ve korumam gereken dosya izinlerim vardı. Bu soruyu sormana sevindim.
Joe C

Yanıtlar:


21

Tamamen iyi.

git tüm geçmişini, taahhütlerini vs. yerinde saklar - bu bir DCVS'nin temel bir özelliğidir.

Teknik olarak, gitbir DCVS ait bütün mesele bu, çünkü kopyalanan depoları her yerde koşturup ile gayet güzel çalışabilir belirli herhangi bir depo dışında neler olup bittiğini bilmek zorunda değildir , ve bunu söylemez sürece aslında .

Aynı ilke burada da geçerlidir.


1
Anladığım kadarıyla, klonlanmış bir havuzun ebeveyne bir bağlantı içereceğidir. Bir OS copy komutu kullanmak bu bağlantıyı oluşturmaz.
Tony

@Tony True, ancak git remote remove originGit'i üst depo olarak kullanmaktan alıkoyan bu bağlantıyı kullanarak bu bağlantıyı kaldırabilirsiniz .
new123456

2

Tüm çalışma dizinini sisteminizde başka bir yere kopyalayabilmeli ve Git, Hg veya SVN kullanırken normal şekilde çalışmaya devam etmesini sağlayabilmelisiniz. Diğer SCM'ler hakkında yorum yapamam.


0

Bu alışılmadık bir kullanım davası ama ...

repoYardımcı programı .gitdizinde sembolik bağlantılar yaparken gördüm . Bu durumda, bir kopya yaparken, sembolik bağları kaldırdığınızdan emin olmak istersiniz. Örneğin:

cp -r -L <source-repo-dir> <destination-repo-dir>

0

Sorun değil, ancak deponuzu başka biriyle paylaşmak üzereyseniz, lütfen aşağıdakileri göz önünde bulundurun :

  • Dosyanız config, diğer kişinin umursamadığı bir uzaktan kumandaya sahip olabilir.
  • Kişisel logspaylaşımına istemeyebilirsiniz o klasör referanslara sahip olacaktır. Git, nihai sonucu rahat edene kadar bilgisayarınızdaki kötü şeyleri yapmanıza izin vermek ve ardından (bazen) paylaşmak için uzaktan kumandayı itmek için harika. Bu iğrenç tarihin bir kısmı reflogunuzda olabilir, bu yüzden IMHO'yu paylaşmamak daha iyidir.
  • Kişisel info/excludedosya bazı dosyalar yalnızca görmezden olabilir sen görmezden istiyorum.
  • Ayrıca kancalara, dallara ve kişisel olan ve paylaşmamayı tercih ettiğiniz başka şeylere sahip olabilirsiniz ...
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.