VonC 的回答是正确的。除了 VonC 提供的链接之外,我还发现了这个链接http://toroid.org/ams/git-website-howto 。我将简单介绍一下我所做的工作,以使事情与此链接一起工作。我提供的链接中的信息最后一次更新是 2010 年 11 月 17 日,但它仍然有效。这绝不是详尽无遗的,因为我确信还有许多其他方法可以进行设置。我没有很多服务器或 Unix 命令经验,所以这个解释是从这个角度来的。
重要的第一步是您需要与远程服务器建立 SSH 连接以运行以下命令或从服务器本身的命令行运行。我不会在这里讨论它,因为它是单独的主题,我在网上找到了许多资源来帮助解决这个问题。
首先确保在本地机器和远程服务器上安装了 Git。那里的大多数操作方法都解释了这一点,并且很容易完成。http://www.git-scm.com是我为本地机器下载安装程序的地方。该站点还包含有关如何在远程服务器上安装的信息。
还有一件事要注意。我正在为我的本地机器使用运行 MAMP 的 mac,而我的远程服务器是 Ubuntu Linux 10.04.1。
第 1 步 - 设置本地存储库
这可以通过多种方式完成。通过命令行或通过诸如 SourceTree、Tower、GitX 等 Git 应用程序。我使用了一个应用程序,因为这就是我计划使用 Git 的方式。
第 2 步 - 设置远程存储库
$ mkdir website.git && cd website.git
$ git init --bare
第 1 行 - 在远程计算机上创建一个目录并更改该目录
第 2 行 - 在 website.git 目录中创建裸存储库。请记住,website.git 可以是您希望使用 .git 扩展名的任何名称。请参阅 VonC 对裸存储库的描述。
第 3 步 - 这是给我最麻烦的一步
$ mkdir /var/www/www.example.org
$ cat > hooks/post-receive
#!/bin/sh
GIT_WORK_TREE=/path/to/web/root git checkout -f
$ chmod +x hooks/post-receive
第 1 行 - 这只是创建一个目录,该目录将成为您的 Web 根目录。如果您已经为 Web 服务器根目录设置了目录,则可能不需要执行此操作。如果您已经有 Web 根集,请跳过此步骤。
第 2-4 行 - 这是我的第一个障碍。此命令将向您显示文件 post-recieve 包含的内容。您可以 ftp 到远程服务器上的此文件或从命令行编辑。我最终只是在我的文本编辑器中编辑并通过 ftp 将其保存回服务器。对我来说更容易。该文件可以在您在步骤 2 中创建的目录 website.git/hooks/post-receeive.sample 中找到。
您还会注意到文件实际名称的末尾有 .sample。您将需要重命名它而无需扩展名。这将基本上打开钩子。新文件名应该只是 post-receive
打开文件,您应该会找到以下文本。
#!/bin/sh
#
# An example hook script for the "post-receive" event.
#
# The "post-receive" script is run after receive-pack has accepted a pack
# and the repository has been updated. It is passed arguments in through
# stdin in the form
# <oldrev> <newrev> <refname>
# For example:
# aa453216d1b3e49e7f6f98441fa56946ddcd6a20 68f7abf4e6f922807889f52bc043ecd31b79f814 refs/heads/master
#
# see contrib/hooks/ for a sample, or uncomment the next line and
# rename the file to "post-receive".
#. /usr/share/doc/git-core/contrib/hooks/post-receive-email
这些行已被注释掉,因此它们不会伤害任何东西。您可以删除这些行或离开并在注释行下方添加以下内容。完成后将文件保存回远程服务器。
#!/bin/sh
GIT_WORK_TREE=/path/to/web/root git checkout -f
第 5 行 - 这将确保接收后文件的文件权限在服务器上是可执行的。这是一个让我们确定的步骤,这样事情就不会在以后中断。
第 4 步 - 添加远程并推送本地主机
这一步可以通过命令行或我之前提到的 Git 应用程序之一来完成。我使用其中一个应用程序。对我来说,这更容易,就像我说的那样,我是服务器和 unix 命令的新手。好处是您可以同时使用应用程序和命令行。一切都记录到 git 存储库中,两者都会看到相同的内容。使用你最舒服的任何东西。大多数人会告诉您学习一些基本的命令行内容,这不是一个坏主意。
第 5 步 - 在本地计算机上创建分支。
当您对更改感到满意时,将它们合并到您的主分支并将它们推送到您的远程。您的网站现在将更新,并且应该反映您添加的任何新更改。
而已。这就是让我启动并运行的原因。希望这会有所帮助,并且我所写的内容没有太多错误。