如果不使用第三方的代碼托管服務,而是要自己在服務器上建一個網上可訪問的私有代碼倉庫, 你有幾種選擇:
## 通過SSH協議來訪問倉庫
通常最簡單的辦法是通ssh協議訪問Git(Git Over SSH). 如果你在一臺機器上有了一個ssh帳號, 你只要把“git祼倉庫"放到任何一個可以通過ssh訪問的目錄, 然后可以像ssh登錄一樣簡單的使用它. 假設你現在有一個倉庫,并且你要把它建成可以在網上可訪問的私有倉庫. 你可以用下面的命令, 導出一個"祼倉庫", 然后用scp命令把它們拷到你的服務器上:
~~~
$ git clone --bare /home/user/myrepo/.git /tmp/myrepo.git
$ scp -r /tmp/myrepo.git myserver.com:/opt/git/myrepo.git
~~~
如果其它人也在 myserver.com 這臺服務器上有ssh帳號,那么TA也可以從這臺服務器上克隆(clone)代碼:
~~~
$ git clone myserver.com:/opt/git/myrepo.git
~~~
上面的命令會提示你輸入ssh密碼或是使用公鑰(public key)。
譯者注1:配置ssh公鑰的方法可以參考[這里](http://help.github.com/linux-key-setup/),這樣在ssh訪問時就可以不要輸入命令。
譯者注2:git over ssh方式對倉庫有讀寫權限, git://協議只能讀倉庫。
## 使用Gitosis的多用戶訪問
如果你不想為每個用戶配置不同的帳號,你可以用一個叫Gitosis的工具. 在gitosis中, 有一個叫 authorized_keys 的文件,里面包括了所有授權可以訪問倉庫的用戶的公鑰(public key), 這樣每個用戶就可以直接使用'git'用戶來推送(push)和拉(pull)代碼。
[安裝與配置Gitosis(英文)](http://www.urbanpuddle.com/articles/2008/07/11/installing-git-on-a-server-ubuntu-or-debian)
> 譯者注1:?[github.com](http://help.github.com/linux-key-setup/)就是采用這種方式來配置私有(倉庫)訪問。
> 譯者注2:?[Gitosis配置(中文)](http://progit.chunzi.me/zh/ch4-7.html)
- 1. 介紹
- 歡迎使用Git
- GIT對象模型
- Git目錄 與 工作目錄
- Git索引
- 2. 第一步
- 安裝Git
- 安裝與初始化
- 3. 基本用法
- 獲得一個Git倉庫
- 正常的工作流程
- 分支與合并@基礎
- 查看歷史 -Git日志
- 比較提交 - Git Diff
- 分布式的工作流程
- Git標簽
- 4. 中級技能
- 忽略某些文件
- rebase
- 交互式rebase
- 交互式添加
- 儲藏
- Git樹名
- 追蹤分支
- 使用Git Grep進行搜索
- Git的撤消操作 - 重置, 簽出 和 撤消
- 維護Git
- 建立一個公共倉庫
- 建立一個私有倉庫
- 5. 高級技能
- 創建新的空分支
- 修改你的歷史
- 高級分支與合并
- 查找問題的利器 - Git Bisect
- 查找問題的利器 - Git Blame
- Git和Email
- 定制Git
- Git Hooks
- 找回丟失的對象
- 子模塊
- 6. Git生態體系
- Git 與之 Windows
- 使用Git進行系統部署
- 與 Subversion 集成
- 從其他代碼管理工具遷移到Git
- 圖形化的Git
- Git倉庫托管
- Git的其它用法
- Git的腳本支持
- Git 與編輯器
- 7. 原理解析
- Git是如何存儲對象的
- 查看Git對象
- Git引用
- Git索引
- 打包文件
- 更底層的Git
- 傳輸協議
- 術語表