====== Simple Hosting 的 GIT 存取 ====== ===== 先决条件 ===== * git 存取方式适合给那些熟悉 git 版本控制系统的人使用。 我们建议您阅读 git 相关适用文件,以确保您能正确的使用 git 存取方式。 * **{vhost}** == 创建于您的 instance 上的虚拟主机 * **{login}** == 您唯一的登入方式。 这是一组由多个数字所组成的号码,我们会在您 instance 的创建过程中,透过电子邮件的方式寄送给您。您也可以在您 instance 的管理页面上查看。这不是您的 Gandi 帐号。这与您用来登入 sftp、管理页面及 SSH 主控台等等是同一个登入方式 。 * **{datacenter_location}** == 代表您的 instance 的资料中心位置: dc0 代表巴黎, dc1 代表巴尔的摩, dc2 代表卢森堡 您只要在 instance 的主控台页面上,将滑鼠游标放置在 git "登入"的连结上,就可以在提示讯息内看到**{vhost}**、 **{login}** 及 **{datacenter_location}** 的参数。 ===== 创建一个储存库 ===== 我们目前实施每个虚拟主机只能有一个储存库的机制。这里提供您在本地机器上进行测试的小范例: $ mkdir {vhost} $ cd {vhost} $ git init $ git remote add origin ssh+git://{login}@git.{datacenter_location}.gpaas.net/{vhost}.git $ mkdir htdocs $ echo "Hello world" > htdocs/index.html $ git add htdocs $ git commit -m "first version of index.html" htdocs $ git push origin master 一旦储存库创建完成,您就可以透过工具 //gitweb// 在您的 Simple Hosting 的管理界面上看到它。 如果这是您第一个储存库,您必须重新启动您的 instance ,您才能在您 Simple Hosting 的管理界面上看到它。 ===== htdocs 目录 ===== 使用 PHP 的 instance, 储存库的根目录并非 web 伺服器所使用的目录,同时,为了确保您所有的档案都可以被存取,您必须将它们都在放一个叫做 //htdocs// 的目录底下,该目录需放置于您的储存库根目录底下。 ===== 复制储存库 ===== 您可以透过以下这个指令将您的储存库复制到您的本机机器上。 $ git clone ssh+git://{login}@git.{datacenter_location}.gpaas.net/{vhost}.git ===== 布署您的代码 ===== 这个指令会在您的虚拟主机目录执行 [[http://git-scm.com/docs/git-checkout|git checkout]] ,并布署您的代码。 您也可以选择指定一个 git 物件作为标记。 $ ssh {login}@git.{datacenter_location}.gpaas.net 'deploy {vhost}.git [ {git_object} ]' 目前并不支援使用 [[http://git-scm.com/book/en/Git-Tools-Submodules|Git 子组件]] 。 在您的虚拟主机已经存在的 "htdocs" 的目录,必须至少具有与使用者相同的写入权限,档案在布署期间才可以被置换。(比如 'chmod 644')。 这个动作在您遇到类似以下这样的错误时将被执行: 错误: 无法分开旧的 'htdocs/sites/default/settings.php' (权限不足) 此外,您可以清理您的虚拟主机目录。下面的指令可以在您的目录执行一个[[http://git-scm.com/docs/git-clean|git 清理]]作业。 请注意!这个指令会删除所有未跟随 git 的档案! $ ssh {login}@git.{datacenter_location}.gpaas.net 'clean {vhost}.git' 如果您要保留某些档案或目录,即时它们没有跟随 git,则您必须为它们在一个档案里新增一个列表,//.gitignore// 即放置于您储存库的根目录底下。这是一个很实用的方法,举例来说,如果您有档案是透过您的网站所建立的。 ===== 存取方法 ===== 您可以使用您通常在使用的密码来存取您的储存库(这跟您用来登入 sftp、管理页面及 SSH 主控台等等是同一个登入密码 ),您也可以选择添加您的公开 SSH 金钥到您的磁碟上 ([[zh-hant:simple:ssh_key|更多 SSH 相关资讯]])。 =====删除储存库===== 如果您要删除储存库,您可以透过 sftp 直接删除 /lamp0/vcs/git/{vhost}.git 这个目录(Node.js 及 Python instance 家族是 /lamp0/vcs/git/default.git)。 ===== 有关 Node.js / Python 或 Ruby instance 家族 ===== 有关这些 instance,在您的虚拟主机里有一个单独的目录 //default// ,就好像以下这个 URL 一样 ssh+git://{login}@git.{datacenter_location}.gpaas.net/default.git 每个布署 (请参见布署指令) 会自动重启 node 流程,以便取得请求。 您的应用程式的依赖关系也将被更新。 此外,在 PHP 的 instance 就再也不需要一个类似 //htdocs// 的目录了。 ===== Windows 方面 ===== 我们近期将新增关于如何透过 Windows 使用 "msysgit" 来存取 Git 方面的文件: [[http://msysgit.github.com/]] 以下网址提供您上述之教学指南: [[http://guides.beanstalkapp.com/version-control/git-on-windows.html]] ===== 其他相关资讯===== * [[http://git-scm.com/|git 网站]] * [[http://git-scm.com/book/zh-hant/|git 文件]]