2010-01-19 22 views
16

Bu yüzden bir noktaya çektiğim ve depoda bir sunucuda bulunan bir git depom var. Çektiğim orijinal depoya erişimim yok. Kodu varolan sunucudan başka bir bilgisayara nasıl alabilirim?Bir makineden başka bir makineye git Git

DÜZENLEME 1:

  • BİLGİSAYAR A: Ben aslen teslim git depo Yani burada göründüğü gibi değil. Artık buna erişimim yok.
  • BİLGİSAYAR B: Kodu kontrol ettiğim bir paylaşılan sunucu.
  • BİLGİSAYAR C: Yerel bir dizüstü bilgisayar.

Gitmeden bu dizinin basit bir kopyasını yapabilir miyim, yoksa B'den C'ye klonlamak için git'i kullanabilir miyim?

+0

Vay - sadece bakıyorum Bu soruya - komik! –

cevap

5

.

3

Sadece sizin klon saklandığı yere erişebilir varsayarak sunucudan bunu kopyalayabilirsiniz - dağılımının gücü;)

+0

Klonun nerede saklandığından emin değilim. Orijinal kod setini nasıl çektiğimi bilmiyorum. –

+0

Sanırım Matt, bilgisayarı B ("var olan sunucu") bilgisayar C'ye ("başka bir bilgisayar") kopyalamak anlamına gelir. Bilgisayar A artık erişiminiz yok. Git klon girişi el ile: http://www.kernel.org/pub/software/scm/git/docs/git-clone.html –

+0

Bilgisayarınızda yerel olarak bir klonunuz var mı? Bundan aynısını klonlayabilirsiniz; Depolar aynı bilgileri içerir, en son çektiğinizden beri değişiklik yapar. –

0

farklı bir bilgisayara istiyorsun klon anlama?

ne dersiniz: Sen ağ yerinden çekin veya diğer bilgisayara genelinde bütün dizin (içeren .git klasör) kopyalayabilir ya

git clone ssh://myserver/path/to/myproject.git 
-2

Soruyu doğru anlarsam, yalnızca kodun geçmişini B'den C'ye aktarmak istersiniz. Aslında git, de-merkezli model kullandığı için B'nin B ve A arasındaki son eşitleme noktasına kadar kodun tam bir geçmişi vardır.

  • direkt kopyalama/rsync/vb. sadece B'den C'ye kod geçmişini aktarmak istiyorsanız

    üç yöntemden düşünebiliriz. \\ \ machine \ code.git dosyasındaki tüm dosyaları ve yapıları kopyalamak için \ C

  • git clone: ​​Bu, C'nin http veya ssh yoluyla erişebilmesini sağlarsa en iyi seçimdir. ss
  • Git paketi: git bundle komutunu destekler ve sonra paket, sen bilgisayar C çalıştırabilirsiniz C
2

için/rsync/ftp/scp paket dosyayı kopyalamak:

git clone [email protected]_B:path/to/root/of/repository 

bilgisayar B bir ssh sunucusunu çalışıyor etti varsayarak. Aksi taktirde diğer protokoller desteklenir (dosya: //, http: //, \\ computer_B (NetBios), ...)

31

Bu, BİLGİSAYAR B'de bulunan bir deponun bir klonunun oluşturulmasıyla sağlanır. klonlanmış deponun oluşturulmasını istediğiniz COMPUTER C üzerindeki git clone komutu. Git içinde klonlama, ssh, https, git dahil olmak üzere çoklu protokoller kullanılarak yapılabilir; ve bunlar başarılı olmak için git clone komutu için uygun bir kurulum gerektirir.Sonra .git klasördeki bir işaretleyici dosyasını yerleştirin

yukarıdaki komutla ilgili yardım için
> git daemon 

,

git help daemon çalıştırın:

kolay yaklaşım bu komutu kullanarak BİLGİSAYAR B git sunucusunu başlamaktır Bu sunucuda clone komutunu çalıştırmak için git sunucusuna izin vermek için BİLGİSAYAR B'deki depo. Bu yapılır: BİLGİSAYAR C üzerinde terminalden,

> cd <repository root>/.git 
> touch git-daemon-export-ok 

Şimdi, aşağıdaki komutları çalıştırın: BİLGİSAYAR C üzerinde klonlanmış deposunu oluşturur

> cd <folder in which to create the cloned repository> 
> git clone git://<ip address of COMPUTER B>/<full path of the repository on COMPUTER B> 

Bu

+0

Hata veriyor: erişim reddedildi veya depoya aktarılamadı. –

+0

Bağlantı reddedildi 'git repos'ta git pemission nasıl kurabilirim? –