2013-03-17 11 views
11

私はgitを使って自分のローカルサーバーをリモートサーバーに展開しようとしています。だからここgitを使ってローカルリポジトリをリモートサーバにコピーするには?

は/私は私のローカルフォルダ名前がMyWebSiteで行われてきたものである:

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

その後、私のウェブサーバー上:

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

その後、私のローカルにフォルダーmywebsite /:

git remote add remote_mywebsite ssh://[email protected]:port/~/public_html/myrepo.git 
git push remote_mywebsite master 
この結果与えた

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 

をしかし、私は私のウェブサーバーにログインすると、myrepo.gitで、「私はまだ、これらのファイルやフォルダ

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

を持っていると私はドンローカルのmywebsiteフォルダにあるファイルとフォルダを取得します。

リモートmyrepo.gitフォルダでコードを取得するにはどうすればよいですか?私は間違ったことをしましたか?

ありがとうございました!

+1

ベアリポジトリを作成したため、ファイルがありません。裸のリポジトリには、オブジェクトデータベースのみが含まれます。サーバー上のファイルを取得するには、ベアリポジトリのクローンを作成します。 – knittl

+0

あなたのローカルリポジトリの(隠された) '.git'フォルダ内の同じオブジェクトデータベースを見つけることができます – knittl

答えて

16

作業ディレクトリなしでリモートリポジトリを作成しました(これは--bareオプションの目的です)。次に行う必要があるのは、リモートリポジトリをWebサイトディレクトリに複製することです。私は同じアプローチを使用します。 1つ以上の裸のgitリポジトリと1つ以上のWebサイトのクローンを持つ〜/ gitディレクトリがあります。あなたの手順は次のようになります。

このアプローチを使用
# 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 

あなたが実際にウェブサイトを更新するために、準備ができたら、その後、リモコンのgit pullを、ローカルで開発リモートできるだけ頻繁にあなたが好きなようにプッシュすることができます。

+0

ありがとう、私はほとんどこの答えを探していました!だれでもこの背後にある論理を説明できますか?新しいファイルリポジトリがリモートのベアリポジトリからクローン作成されるのはなぜですか?何かがあれば、ローカルリポジトリとの類似性が増しているように思えます。 –

+0

@JohnBananasあなたはGitの本を読むべきです – hexicle

0

これは、あなたの質問あなたがソースを持っている必要はありません裸のリポジトリに

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

お答えします。

+0

リンクは永久的ではないので、コマンドのような関連する情報をこの回答にコピーすることができれば便利です。私はそれがいくつかの詳細を持っていたら、あなたの答えを喜んで投票するだろう!答えはリンクによってサポートされることができますが、それがなければ単独で立つことができます。 – Amicable

関連する問題