一、安裝
$ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
$ yum install gitgit
二、接下來咱們 建立一個git用戶組和用戶,用來運行git服務:
$ groupadd git
$ useradd git -g git
$ passwd ****** web
三、建立git倉庫
$ cd /home/git
$ git init --bare gitrepo.git
$ chown -R git:git gitrepo.gitshell
四、禁用shell登陸(爲安全考慮,git用戶不容許登陸shell)
#修改/etc/passwd
$ vim /etc/passwd
#找到git的用戶設置 如:
git:x:502:503::/home/git:/bin/bash
改成
git:x:502:503::/home/git:/bin/git-shell
#這樣用戶用git帳戶ssh鏈接後只能使用git命令了vim
五、打開 RSA 認證
進入 /etc/ssh 目錄,編輯 sshd_config,打開如下三個配置的註釋:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
保存並重啓 sshd 服務:
$ /etc/rc.d/init.d/sshd restart緩存
六、客戶端安裝git並在(window的git bash)git操做提交
#進入一個空的工做目錄
#設置用戶信息:
$ git config --global user.name "username"
$ git config --global user.email "your@example.com"安全
七、#初始化git
$ git init bash
八、管理公鑰
$ ssh-keygen -C 'your@email.com' -t rsa #爲你生成rsa密鑰,能夠直接一路回車,執行默認操做
客戶端生成密要方式同上。
生成密鑰後,通常C:\Users\用戶名\.ssh會出現服務器
.ssh
├── id_rsa
└── id_rsa.pub #公鑰 服務端須要裏邊內容驗證鏈接着身份
將id_rsa.pub 裏邊內容複製到authorized_keysssh
如找不到authorized_keys文件,則需在服務器端新建
$ cd /home/git
$ mkdir .ssh
$ chmod 755 .ssh
$ touch .ssh/authorized_keys
$ chmod 644 .ssh/authorized_keyscurl
在客戶端上,打開 id_rsa.pub 複製裏邊內容,一行一個
$ vim /home/git/.ssh/authorized_keys
#粘貼客戶端生成的公鑰,保存退出
九、測試本地文件提交到遠程倉庫
$ vim readme.md
#編輯些內容保存退出
$ git add readme.md #添加到git緩存中
$ git commit -m 'write readme file' #提交修改
#添加遠程git倉庫
$ git remote add origin git@your_host_name:/home/git/gitrepo.git
$ git push origin master #這樣就同步到服務器了
其餘人要同步
#克隆和推送:
$ git clone git@your_host_name:/home/git/gitrepo.git
$ vim readme.md
$ git commit -am 'fix for the README file'
$ git push origin master
代碼同步(HOOK)
上邊git用於作了中心的版本控制
可是還想讓服務器接到修改更新後自動同步代碼到網站目錄中,便於測試開發
以下操做是能夠實現
#假定網站目錄在/www/web下
cd /home/git/gitrepo.git/hooks
vim post-receive #建立一個鉤子
#寫入下面內容
GIT_WORK_TREE=/www/web git checkout -f
#保存退出
chown git:git post-receive
chmod +x post-receive
如此,下次提交修改,代碼會自動同步到指定目錄中
結合idea上傳本地版本到遠程倉庫,參考https://blog.csdn.net/autfish/article/details/52513465