我如何:Git单向推送/不可编辑的工作目录?

时间:2013-08-20 05:36:12

标签: git

有没有办法让两台机器,让我们说A和B.

  • A是我的本地机器,我开发代码并推送它。
  • B是一个服务器,它永远不必编辑代码,但需要一个工作目录。

是否可以在没有从B做任何git pull的情况下执行


基本上我只想用一种方式使用git。在一个方向。类似于使用rsync将本地目录同步到远程目录,但具有版本控制。如果使用git无法做到这一点,是否可以使用其他任何东西?

再次,最好是版本控制。

1 个答案:

答案 0 :(得分:3)

article解释得非常好。我将从那里复制代码。

它假设您在服务器和工作站之间设置了SSH身份验证(无密码)。

在服务器上:

mkdir website.git && cd website.git
git init --bare
mkdir /var/www/www.example.org
touch hooks/post-receive
chmod +x hooks/post-receive

然后把它放在钩子/后接收

#!/bin/sh
GIT_WORK_TREE=/var/www/www.example.org git checkout -f

在您当地的git存储库中:

git remote add web ssh://server.example.org/home/ams/website.git
git push web +master:refs/heads/master

配置:

  • /var/www/www.example.org 是此网站的公共根目录。
  • / home / ams 是您创建的网站website.git
  • server.example.org 是服务器的域名,IP或主机别名