阿裏雲創建自己的git服務器
阿新 • • 發佈:2017-10-05
id_rsa ole 參數 單純 violet 依據 移除 但是 rec
如何創建你自己的Git服務器?
如果你連不上公共網絡,或者你受夠了呆板的管理,亦或是你只是單純的想要不同與Github所提供的服務,那麽搭建你自己的Git服務器將會很有幫助。本文中分享了創建自己的Git服務器的方法。
盡管我是一個快樂的(同時也是付費的)GitHub用戶,但是我多次想要在我自己的服務器上搭建私人倉庫(github會提供給付費用戶私人倉庫—-譯註)。如果你連不上公共網絡,或者你受夠了呆板的管理,亦或是你只是單純的想要不同與Github(以及其他類似的網站)所提供的服務,那麽搭建你自己的Git服務器將會很有幫助。在Unix(Linux、Mac OSX、 *BSD、 Solaris、AIX)的機器上部署Git服務器並非難事,但是仍然有許多細節需要註意。這裏是一個完整的教程。
通過以下的步驟,你將在服務器上搭建並使用你自己的Git服務,例如myhost.example.com。其中的一些步驟,像email通知,限制用戶的權限,特定分組的接入管理,都是依據你的要求和現實狀況的可選項。還有很多命令,你需要root權限才能執行,所以別忘了用sudo,或者(最好不要)直接切換到root來執行。
- 為有讀寫權限的用戶建立一個分組。根據你的操作系統,你可以用groupadd命令來實現,用vigr來編輯分組文件,或者直接編輯/etc/group文件。在最後,你會在/etc/group文件中看到如下一行
- repogroup:*:10005:marry,john,violet
其中,repogroup是準許接入這個倉庫的組的名字。10005是一個獨一無二的分組識別數字,marry,john,violet則是獲準接入這個倉庫的用戶。
- 決定Git倉庫的路徑。它既可以放在你的home路徑下(e.g. /home/yourname/gitroot),也可以放在一個專用的路徑下(e.g. /var/gitroot).
- 配置權限,讓Git用戶可以訪問這個目錄
- chmod g+rx /path-to/gitroot
- chown :grouprepo /path-to/gitroot
- 建立新的Git倉庫,叫做newrepo
- cd /path-to/gitroot
- git init --bare newrepo.git
- 建立路徑認證,以允許用戶組訪問,同時有針對性的設置Git
- cd newrepo.git
- chown -R :grouprepo .
- git config core.sharedRepository group
- find . -type d -print0 | xargs -0 chmod 2770
- find . -type f -print0 | xargs -0 chmod g=u
- 設置提交(commit)的email通知(commit是一條命令),這樣當有新的修改提交到倉庫的時候,開發者們將會收到一封關於修改內容一覽的電子郵件。
- echo ‘One-line project description‘ >description
- git config --local hooks.mailinglist [email protected],[email protected],...
- git config --local hooks.emailprefix ‘[DI-PR] ‘
- git config --local hooks.showrev "git show -C %s; echo"
- git config --local hooks.emailmaxlines 100
- 通過設置一個稱為鉤子(hook)的東東,來創建這些email通知。
- cd hooks
- cp post-receive.sample post-receive
- chmod +x post-receive
- 從post-receive的腳本中移除掉最後一行註釋的#字號,最後語句應該是這樣的
- ./path-to-hooks/post-receive-email
- 在你的庫中先放入一個文件(比如README)。為了避免其他用戶在第一次提交時遇到奇怪的錯誤信息時感到困惑,這是有必要的。
- cd to-your-personal-working-directory
- git clone myhost.example.com:/path-to/gitroot/newrepo.git
- echo "Short project description" >README.txt
- git add README.txt
- git commit -a -m "Add README file"
- git push origin master # 第一次僅僅需要T"origin master" 這個參數
- 為倉庫的其他用戶建立賬戶。依據你系統的不同,你可以通過useradd 或者adduser來實現。
- 設置用戶可以通過公/私鑰配對來訪問。這包括以下幾步:
1)已經有公鑰的用戶,只需要把公鑰發給你就好。
2)沒有公鑰的用戶,必須用ssh-keygen命令來生成一個,然後把.ssh/id_rsa.pub發給你就可以了。
3)之後你必須在他們對應的賬戶下面建立這種公/私鑰配對。復制他的公鑰,然後順序執行下面的命令。
|
- 改變用戶的賬戶讓他們使用受限的shell。如果你想讓你添加進來的用戶僅僅使用Git,而不是Unix的所有東西,那麽就設置他們的賬戶,讓他們只能使用Git。Git提供了這種專為這種需求設計的受限shell。它通常被安裝在 /usr/libexec/git-core/git-shell or /usr/local/libexec/git-core/git-shell。因此,對所有你想限制權限的用戶,你可以執行以下命令。
- sudo chsh -s /usr/libexec/git-core/git-shell username
- 告訴你的用戶,用下面的語句來克隆倉庫到本地。
- git clone myhost.example.com:/path-to/gitroot/newrepo.git
阿裏雲創建自己的git服務器