如何使用git将本地存储库复制到远程服务器?

时间:2013-03-17 17:25:04

标签: 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://user@domain.com: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://user@domain.com: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文件夹中检索我的代码?我做错了吗?

非常感谢你的帮助!

2 个答案:

答案 0 :(得分:19)

您已经创建了一个没有工作目录的远程存储库(这是--bare选项的目的)。接下来需要做的是将远程存储库克隆到您的网站目录中。我使用相同的方法;我有一个〜/ git目录,其中包含一个或多个裸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实际更新网站。

答案 1 :(得分:0)

这将回答你的问题

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

在裸存储库中,您不需要拥有源代码。