2013-03-17 29 views
11

Yerel kodumu uzak sunucumda dağıtmak için git'i kullanmaya çalışıyorum. Yani buradaYerel bir depo, git kullanarak uzak sunucuya nasıl kopyalanır?

/Benim yerel klasör MyWebSite yaptığım budur:

git init 
git add . 
git commit -m "Initial commit" 

Sonra benim web sunucusu tarih:

mkdir ~/public_html/myrepo.git 
cd myrepo.git 
git init --bare 

Sonra benim yerel üzerinde klasörü mywebsite /:

git remote add remote_mywebsite ssh://[email protected]:port/~/public_html/myrepo.git 
git push remote_mywebsite master 
Bu sonucu verdi

:

Counting objects: 89, done. 
Delta compression using up to 4 threads. 
Compressing objects: 100% (74/74), done. 
Writing objects: 100% (89/89), 61.94 KiB, done. 
Total 89 (delta 2), reused 0 (delta 0) 
To ssh://[email protected]:8943/~/public_html/myrepo.git 
* [new branch]  master -> master 

git pull remote_mywebsite 

Ama benim web sunucusuna giriş yaptığınızda, myrepo.git içinde, 'Ben hala bu dosyaları ve klasörleri

./ 
../ 
branches/ 
config 
description 
HEAD 
hooks/ 
info/ 
objects/ 
refs/ 

yaşıyorum ve ben yok t Yerel mywebsite klasörümdeki dosyaları ve klasörleri geri al.

Uzaktan myrepo.git klasöründeki kodumu nasıl alabilirim? Ben yanlış bir şey mi yaptım ?

Yardımlarınız için çok teşekkürler!

+1

Dosyaları yok çünkü çıplak bir depo oluşturdunuz. Çıplak bir depo sadece nesne veritabanını içerir. Dosyalarınızı sunucuda almak için, çıplak deponun bir klonunu oluşturun. – knittl

+0

Aynı nesne veritabanını yerel deponuzda (gizli) '.git' klasöründe bulabilirsiniz – knittl

cevap

16

Çalışma dizini olmayan bir uzak depo oluşturdunuz (bu, --bare seçeneğinin amacıdır). Bir sonraki yapmanız gereken, uzaktaki depoyu web sitenizin dizinine kopyalamaktır. Ben aynı yaklaşımı kullanırım; Bir veya daha fazla çıplak git deposu olan bir ~/git dizinim var ve bir veya daha fazla web sitesi için klonlar. Adımların olabilir:

# locate your bare repository in a 'git' directory 
remote$ mkdir ~/git; mkdir ~/git/mywebsite.git; cd ~/git/mywebsite.git; git init --bare 

# set this up as your remote 
local$ git remote add origin ssh:.../git/mywebsite.git 
local$ git push origin ... 

# on the remote, clone into your working website 
remote$ cd ~/public_html 
remote$ git clone ~/git/mywebsite.git mywebsite 

aslında web sitesi güncelleme uzaktan kumandadaki, hazır olduğunda, o zaman istediğiniz gibi uzak sıklıkta için itmek, lokal gelişebilir ve git pull bu yaklaşımı kullanma.

+0

Teşekkür ederim, neredeyse bu cevabı aramaktan vazgeçtim! Bunun arkasındaki mantığı açıklayan var mı? Yeni dosya deposu neden uzaktaki depodan klonlanıyor? Eğer bir şey varsa, yerel depoya daha fazla benzemeye sahip gibi görünüyor. –

+0

@JohnBananas Git – hexicle

0

Bu soru kaynağına sahip gerekmez çıplak depo olarak

http://www.saintsjd.com/2011/01/what-is-a-bare-git-repository/

cevap verecektir.

+0

'da bir kitap okumalısınız. Linkler kalıcı olmadığından, bu yanıtın içerdiği komutlar gibi ilgili detayları kopyalayabilmeniz yararlı olacaktır. Biraz daha ayrıntıya sahip olsaydı, cevabınızı memnuniyetle seçerdim! Bir cevap bir bağlantıyla desteklenebilir, ancak onsuz tek başına ayakta durabilmelidir. – Amicable

İlgili konular