第一步,安裝 git:
# ubuntu
apt-get
install
git# centos
yum install
git -y
安裝成功,查詢 git 版本:
[root@***]
# git version
git version 1.8.3.1
第二步,在伺服器上,建立乙個git 使用者組和 git 使用者:
# 新增使用者組
groupadd
git# 新增使用者並歸屬到 git 使用者組
adduser git -g git
第三步,建立證書登入:
把所有需要對 git 倉庫操作的使用者的公鑰,就是他們自己的 id_rsa.pub 檔案,一般在~/.ssh
路徑下,~
表示使用者路徑。
# window
$ ls -l c:/users/moses/.ssh
total 9
-rw-r--r-- 1 moses 197121 2655 8月 10 19:23 id_rsa
-rw-r--r-- 1 moses 197121 565 8月 10 19:23 id_rsa.pub
-rw-r--r-- 1 moses 197121 1734 9月 16 22:52 known_hosts
如果沒有,可以使用ssh-keygen
生成,也可以指定 rsa 演算法生成ssh-keygen -t rsa
。如果不嫌麻煩,一路回車就可以。為了安全起見,個人建議輸入passphrase
,但是要記住它,後面提交**都會用到。
匯入到/home/git/.ssh/authorized_keys
檔案裡,一行乙個。如果沒有該檔案建立它。另外,如果你要修改這個路徑,可以修改 ssh 的配置,一般路徑在/etc/ssh/sshd_config
。
第四步,初始化 git 倉庫:先選定乙個目錄作為 git 倉庫,假定是/home/git/repos/sample.git
,在目錄下輸入命令:
# 進入到路徑下
cd /home/git/repos
# 建立乙個空倉庫
git init --bare sample.git
git 就會建立乙個空倉庫,空倉庫沒有工作區,不讓使用者直接在該倉庫下操作,而需要 clone ,也就是純屬為了共享。另外,伺服器上的 git 倉庫通常都以 .git 結尾,意為它是乙個 git 倉庫,如果不以 .git 結尾也沒關係,但 clone 時,別人可能誤認為這不是乙個 git 倉庫。
然後,把倉庫歸屬到 git 使用者組和 git 使用者下:
chown -r git:git sample.git
這樣做,第二步才有意義。
第五步,禁用 shell 登入:第二步建立的 git 是可以登入到伺服器操作任何一切它可以操作的檔案或者目錄的。出於安全考慮,我們應該讓 git 使用者不允許登入 shell,這可以通過編輯 /etc/passwd 檔案完成。找到類似下面的一行:
git:x:1001:1001:,,,:/home/git:/bin/bash
# 改為:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
這樣,git 使用者可以正常通過 ssh 使用 git,但無法登入 shell,因為我們為 git 使用者指定的 git-shell 每次一登入就自動退出,這就安全多了。
第六步,轉殖遠端倉庫:現在,可以通過 git clone 命令轉殖遠端倉庫了,在各自的電腦上執行:
git clone git@server:/home/git/repos/sample.git
# 或者
git clone ssh://git@server/home/git/repos/sample.git
注意:server 是自己的伺服器 ip 或者指向伺服器的網域名稱,後面的/home/git/repos/sample.git
是倉庫在伺服器的路徑,得根據實際情況變換。
如果 clone 時提示沒有許可權或者倉庫不存在,則在未禁用 git 使用者 shell 登入前,第四步時先切換到 git 使用者,再初始化 git 空倉庫!這樣也可以省去倉庫歸屬 chown 這一步。
su
git# su: switch user
參考: Git 搭建git伺服器
環境 ubuntu16.4 1.以root使用者登陸linux後台,執行下面的命令安裝git apt install git2.建立git使用者 adduser git3.建立倉庫目錄 su git mkdir p repository myself.git4.初始化倉庫 cd repository...
Git 搭建Git伺服器
在遠端倉庫一節中,我們講了遠端倉庫實際上和本地倉庫沒啥不同,純粹為了7x24小時開機並交換大家的修改。github就是乙個免費託管開源 的遠端倉庫。但是對於某些視源 如生命的商業公司來說,既不想公開源 又捨不得給github交保護費,那就只能自己搭建一台git伺服器作為私有倉庫使用。搭建git伺服器...
搭建Git伺服器
在 遠端倉庫 一節中,我們講了遠端倉庫實際上和本地倉庫沒啥不同,純粹為了7x24小時開機並交換大家的修改。github就是乙個免費託管開源 的遠端倉庫。但是對於某些視源 如生命的商業公司來說,既不想公開源 又捨不得給github交保護費,那就只能自己搭建一台git伺服器作為私有倉庫使用。搭建git伺...