====== 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 文件]]