Soru Git deposunu belirli bir klasöre nasıl kopyalarsınız?


Komutu yürütmek git clone git@github.com:whatever varolan klasörde her ne olursa olsun bir dizin oluşturur ve Git deposunun içeriğini o klasöre bırakır:

/httpdocs/whatever/public

Benim problemim, şu anki dizine klonlanan Git deposunun içeriğine ihtiyacım var, böylece web sunucusu için uygun konumda görünecekler:

/httpdocs/public

Depoyu klonladıktan sonra dosyaları nasıl taşıyacağımı biliyorum, ama bu Git'i kırıyor gibi görünüyor ve sadece arayarak güncellemek istiyorum git pull. Bunu nasıl yapabilirim?


1718
2018-03-16 15:56


Menşei


Windows'da repo'yu klonlayacağınız klasörden dosyaları taşıyabilirsiniz. git klonu. Klonlamadan sonra dosyalarınızı geri [ctrl-z] ve whoala! Mevcut klasör boşsa sadece şunu kullanın: git clone giturl .


Cevaplar:


Seçenek A:

git clone git@github.com:whatever folder-name

Seçenek B:

.git klasörünü de taşıyın.

Daha iyisi:

Çalışma kopyanızı başka bir yerde saklayın ve sembolik bir bağlantı oluşturun.


2413
2018-03-16 16:08



'Daha iyisi' seçeneğinizi düşünmemiştim ve nedenini bilmeme rağmen hoşuma gidiyor. Bunun avantajları nelerdir? - David Smith
Muhtemelen şu anda herhangi bir avantaj sağlamaz, ancak bir güne ait şeyleri hareket ettirmeye karar verirseniz, size çok fazla sorun çıkarabilir. - Can Berk Güder
Ayrıca "Daha iyisi" seçeneği ile hızlı bir şekilde sürümler arasında geçiş yapabilirsiniz. Bu özellikle yararlıdır ve sunucular için kullanılır. - Halil Özgür
@MEM Sanırım .git i.e. ln -s path/to/.git path/to/working/directory - Alexander
Herkes bunun faydalarını açıklayabilir mi? Bugün biraz yoğunum. Bir symlink fayda sunucularını nasıl kullanıyor? - triple


Bence bu soruyu soran birçok insan bunun peşinde. Eğer sen içinde Git deposunun içeriğini istediğiniz dizine dökün, çalıştırın:

git clone git@github.com:whatever .

"." sonunda, geçerli klasörü checkout klasörü olarak belirtir.


512
2018-02-25 17:15



Bu dizin boş değilse, bu işe yaramıyor. - Charlie Flowers
doğru, bu klasöre klonlamadan önce bu klasörde "git init" çalıştırmak istemiyorsunuz. Ama eğer yaptıysanız, klonlamadan önce .git klasörünü kaldırmak hile yapar. - Magne
cevabımda boş dizinler için sabit - csomakk
Bunu nitrous.io'da işe yaramadı mı? boşalttıktan sonra bile dizin boş değil diyor - Tejas Manohar
@TejasManohar Gizli dosyaları da sildiğinizden emin olun. - Britic


Klasöre git. Eğer klasör boşsa, o zaman:

git clone git@github.com:whatever .

Başka

git init
git remote add origin PATH/TO/REPO
git fetch
git checkout -t origin/master

176
2017-12-12 08:43



Aslında bu yeni oluşturulmuş projeye yeni oluşturulmuş depoya zorladığımda, bu benim için en yararlı cevaptı. Kudos! - wirher
Sadece boş olmayan bir klasöre nasıl kontrol edileceğini belirten cevap, teşekkür ederim. - Preston Badeer
Bu gerçekten çok yararlı switch -t üzerinde açıkça belgelerinde gösterilmez git ödeme. - Chetabahana
-t anahtarı ne yapar? Checkout tarafından üzerine yazılacak olan izlenmemiş dosyaların bir listesi ile iptal mesajı alıyorum? Bu durumda ne yapmalı? Bu dosyaların üzerine yazılmasını istemiyorum? - Momin Zahid
-t belgelerinden git: -t, --track Yeni bir şube oluştururken, "upstream" yapılandırmasını ayarlayın. Detaylar için git-dalında (1) "--track" e bakınız. - csomakk


Temel Git Havuzu Klonlama

Bir depoyu klonla

git clone [url]

Örneğin, open_framework adlı Stanford Üniversitesi Drupal Open Framework Git kitaplığını kopyalamak isterseniz, bunu şu şekilde yapabilirsiniz:

$ git clone git://github.com/SU-SWS/open_framework.git

Bu, open_framework adında bir dizin oluşturur (geçerli yerel dosya sistem konumunuzda), içindeki bir .git dizinini başlatır, bu depo için tüm verileri aşağı çeker ve en son sürümün çalışan bir kopyasını kontrol eder. Yeni oluşturulmuş open_framework dizinine girerseniz, orada çalışmaya veya kullanılmaya hazır proje dosyalarını görürsünüz.

Belirli bir Yerel Klasöre Bir Depo Klonlama

Depoyu open_framework dışındaki bir adla adlandırılmış bir dizine kopyalamak isterseniz, bunu bir sonraki komut satırı seçeneği olarak belirtebilirsiniz:

$ git clone git:github.com/SU-SWS/open_framework.git mynewtheme

Bu komut, öncekiyle aynı şeyi yapar, ancak hedef dizine mynewtheme denir.

Git, kullanabileceğiniz bir dizi farklı aktarım protokolüne sahiptir. Önceki örnek, git: // protokolünü kullanır, ancak SSH aktarım protokolünü kullanan http (s): // veya user @ server: /path.git adresini de görebilirsiniz.


70
2018-04-23 21:27



Bu, geçerli klasörünüzde otomatik olarak bir klasör oluşturacak ve dosyaları buraya yerleştirecektir. Böylece, başka bir klasörün üzerine yazmak için endişelenmenize gerek yok. - arn-arn
Windows Git Bash'de 2018'de Git'de gerçekten iyi çalışıyor. - Eric Hepperle - CodeSlayer2010


Dosyaları istediğiniz yere taşıdığınızda, aynı zamanda .git Dizin? İşletim sisteminize ve yapılandırmanıza bağlı olarak, bu dizin gizlenmiş olabilir.

Repo ve destekleyici dosyaları içerirken, proje dosyaları /public dizin, yalnızca şu anda çıkış işleminde bulunan sürümlerdir (varsayılan olarak ana dal).


12
2018-03-16 16:14





Klon:

git clone git@jittre.unfuddle.com:jittre/name.git

"Belirli şubeyi" klonlayın:

git clone -b [branch-name] git@jittre.unfuddle.com:jittre/name.git

11
2018-04-04 06:46





Geçerli klasöre kopyalamak isterseniz, şunu deneyin:

git clone https://github.com/example/example.git ./

11
2017-09-11 00:59



ölümcül: hedef yol '.' zaten var ve boş bir dizin değil. - Cleiton


Geçerli dizine bir şey çıkarmaya çalışıyorsanız, .git deposunu kaldırdığınızdan emin olun.

rm -rf .git sonra git clone https://github.com/symfony/symfony-sandbox.git


9
2018-02-25 22:17





Git deposunu belirli bir klasöre kopyalamak için kullanabilirsiniz. -C <path> parametre, ör.

git -C /httpdocs clone git@github.com:whatever

Yine de bir whatever Bunun üstündeki klasör, bu nedenle, deponun içeriğini geçerli dizine kopyalamak için aşağıdaki sözdizimini kullanın:

git git@github.com:whatever .

Varolan bir dizine klonlama olduğunu unutmayın bir tek dizin olduğunda izin verilir boş.

Herkese açık olan bir klasöre klonlandığınız için, Git deposunuzu çalışan ağaçtan ayırmayı düşünerek --separate-git-dir=<git dir> veya hariç tut .git web sunucusu yapılandırmanızda klasör (ör. .htaccess dosya).


9
2018-01-08 20:04