16

我正在尝试使用 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 文件夹中检索我的代码?我做错什么了吗 ?

非常感谢你的帮助!

4

2 回答 2

22

您已经创建了一个没有工作目录的远程存储库(这是该--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在远程上实际更新网站。

于 2013-03-17T17:40:59.453 回答
0

这将回答你的问题

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

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

于 2013-08-22T07:53:42.643 回答