Linux 将git回购部署到;生产";服务器

Linux 将git回购部署到;生产";服务器,linux,git,github,sftp,Linux,Git,Github,Sftp,我有一个git repo,我和一组开发人员正在协作编写项目代码。有时,我们希望将git repo复制到具有外部IP地址(w.x.y.z)的VPS(设置为Linux服务器) 我可以进入一个SFTP客户端,向上导航文件夹层次结构到服务器根目录,然后向下导航到/var/www/(服务器web根目录)以将文件放入,但我希望通过命令行部署到服务器 我的目标是将Linux服务器配置为远程git目录,但不知道如何向上导航文件层次结构,让git认识到远程分支repo需要进入/var/www/ 简短搜索发现了gi

我有一个git repo,我和一组开发人员正在协作编写项目代码。有时,我们希望将git repo复制到具有外部IP地址(
w.x.y.z
)的VPS(设置为Linux服务器)

我可以进入一个SFTP客户端,向上导航文件夹层次结构到服务器根目录,然后向下导航到/var/www/(服务器web根目录)以将文件放入,但我希望通过命令行部署到服务器

我的目标是将Linux服务器配置为远程git目录,但不知道如何向上导航文件层次结构,让git认识到远程分支repo需要进入/var/www/

简短搜索发现了
git远程添加源username@w.x.y.z
然后使用
git推送原点

似乎通过这种方式连接到
w.x.y.z
将使我在“username”的主文件夹中,而不是通过浏览器访问时的根web目录(/var/www/)


有人知道我应该如何设置一个远程目录,以便将git repo部署到“生产”服务器上吗?

您的做法似乎并不明显。我认为您要做的是将git repo复制到其他地方(vps服务器)。实现这一点的标准方法是
git clone

在您的
/var/www/
目录或其相应子目录中,执行以下操作:

git clone [URL-FROM-GITHUB]
这将把git存储库克隆到您的VPS。然后,您可以使用

git pull
可以用脚本编写这个吗

ssh my.vps.server 'cd /var/www/whatever && git pull'

但是,通常情况下,您不希望整个项目位于“/var/www/…”中,因为这也会将您不打算部署的内容放在那里,例如
.git
目录。因此,最好在主目录中克隆repo,并针对repo编写一个小脚本到相应的
/var/www/
目录,使用
--exclude
删除不需要的文件,或者只是
rsync
-ing回购协议的子目录。

您似乎在以一种不太明显的方式进行此操作。我认为您要做的是将git repo复制到其他地方(vps服务器)。实现这一点的标准方法是
git clone

在您的
/var/www/
目录或其相应子目录中,执行以下操作:

git clone [URL-FROM-GITHUB]
这将把git存储库克隆到您的VPS。然后,您可以使用

git pull
可以用脚本编写这个吗

ssh my.vps.server 'cd /var/www/whatever && git pull'

但是,通常情况下,您不希望整个项目位于“/var/www/…”中,因为这也会将您不打算部署的内容放在那里,例如
.git
目录。因此,最好在主目录中克隆repo,并针对repo编写一个小脚本到相应的
/var/www/
目录,使用
--exclude
删除不需要的文件,或者只是
rsync
-ing回购协议的子目录。

您似乎在以一种不太明显的方式进行此操作。我认为您要做的是将git repo复制到其他地方(vps服务器)。实现这一点的标准方法是
git clone

在您的
/var/www/
目录或其相应子目录中,执行以下操作:

git clone [URL-FROM-GITHUB]
这将把git存储库克隆到您的VPS。然后,您可以使用

git pull
可以用脚本编写这个吗

ssh my.vps.server 'cd /var/www/whatever && git pull'

但是,通常情况下,您不希望整个项目位于“/var/www/…”中,因为这也会将您不打算部署的内容放在那里,例如
.git
目录。因此,最好在主目录中克隆repo,并针对repo编写一个小脚本到相应的
/var/www/
目录,使用
--exclude
删除不需要的文件,或者只是
rsync
-ing回购协议的子目录。

您似乎在以一种不太明显的方式进行此操作。我认为您要做的是将git repo复制到其他地方(vps服务器)。实现这一点的标准方法是
git clone

在您的
/var/www/
目录或其相应子目录中,执行以下操作:

git clone [URL-FROM-GITHUB]
这将把git存储库克隆到您的VPS。然后,您可以使用

git pull
可以用脚本编写这个吗

ssh my.vps.server 'cd /var/www/whatever && git pull'

但是,通常情况下,您不希望整个项目位于“/var/www/…”中,因为这也会将您不打算部署的内容放在那里,例如
.git
目录。因此,最好在您的主目录中克隆repo,并针对您的repo制作一个小脚本到
rsync
适当的
/var/www/
目录,使用
--exclude
删除您不想要的文件,或者只
rsync
-ing repo的子目录。

谢谢。我相信这就是我一直在寻找的。我将研究rsync,看看我是否可以让它为我所需要的工作。我有一个问题,如果我可以直接
rsync
/var/www/
目录,为什么我要
git拉
,而不是从主人那里得到的。在web服务器上运行git repo还允许您轻松回滚到其他提交。谢谢。我相信这就是我一直在寻找的。我将研究rsync,看看我是否可以让它为我所需要的工作。我有一个问题,如果我可以直接
rsync
/var/www/
目录,为什么我要
git拉
,而不是从主人那里得到的。在web服务器上运行git repo还允许您轻松回滚到其他提交。谢谢。我相信这就是我一直在寻找的。我将研究rsync,看看我是否可以让它满足我的需要。我有一个问题,如果我可以直接
rsync
/var/www/
d,为什么我要
git拉