Git搭建自己的网站服务器(Linux)
git服務器弄了半天終于搞定了,還是記錄下吧,不然下次有得忘了
流程:
服務器
- 構建git目錄
- git用戶,git組作為倉庫管理
- ssh授權(遠程無需密碼接入)
- hook(post-receive)自動部署代碼到網站目錄
- 網站目錄
- 準備接代碼就行啦
客戶端
- 建立開發目錄
- ssh連接key生成
- git操作。。。
開始實作吧!
先是git源碼編譯
https://www.kernel.org/pub/software/scm/git/
下載最新版本git(.gz)到/usr/local
安裝
tar -zxf git-2.2.1.tar.gz cd git.2.2.1 make prefix=/usr/local/git all make prefix=/usr/local/git install源碼編譯是不如 yum install git-all 方便,但是版本可以更新點,筆者用的阿里centos6.5,對應的git版本只能到1.7.2
自己裝的git沒有在系統PATH環境里,用修改 /etc/profile 的方法手動貼入
vim /etc/profile #找到 PATH=/usr/local/php/bin:$PATH 這行修改為 PATH=/usr/local/php/bin:/usr/local/git/bin:$PATH #保存,退出shell重新連接就生效了git倉庫
groupadd git useradd git -g git cd /home/git mkdir repo.git #名字自定義 cd repo.git git init --bare #生成裸倉庫,存放除代碼的版本信息 chown -R git:git /home/git/repo.git這里有一點要注意,網上有為安全考慮,只為git用戶的ssh連接啟用git-shell,源碼安裝需如下操作
#修改/etc/passwd vim /etc/passwd #找到git的用戶設置 如: git:x:502:503::/home/newbmiao:/bin/bash #將最后一個執行文件路徑改為 git:x:502:503::/home/git:/usr/local/git/bin/git-shell #在安裝包bin目錄下 #要啟用還需源碼報的git-shell命令交互 cp /usr/local/git-2.2.1/contrib/git-shell-commands /home/git/ #這樣用戶用git賬戶ssh連接后只能使用git命令了ssh免密碼驗證連接
su git #切換git身份 cd /home/git/ ssh-keygen -C 'your@email.com' -t rsa #為你生成rsa密鑰,可以直接一路回車,執行默認操作客戶端生成密要方式同上。
生成密鑰后,會出現
在客戶端上,打開 id_rsa.pub 復制里邊內容
vim /home/git/.ssh/authorized_keys #粘貼客戶端生成的公鑰,保存退出 #然后要啟動sshd和git-daemon /etc/init.d/git-daemon restart #上邊git-daemon在安裝目錄下/usr/local/git/libexec/git-core/git-daemon,直接復制過去就行 /etc/init.d/sshd start這樣服務端的git倉庫就搭好了
客戶端 git開發
在客戶端(筆者的是window的git bash)git操作提交試試
#進入一個空的工作目錄 git init #初始化git vim test #編輯些內容保存退出 git add test #添加到git緩存中 git commit -m 'init test' #提交修改 #添加遠程git倉庫 git remote add origin git@your_host_name:/home/git/repo.git git push origin master #這樣就同步到服務器了其他人要同步
#克隆和推送: git clone git@your_host_name:/home/git/repo.git cd repo vim README git commit -am 'fix for the README file' git push origin master代碼同步(HOOK)
上邊git用于做了中心的版本控制
但是還想讓服務器接到修改更新后自動同步代碼到網站目錄中,便于測試開發
如下操作是可以實現
如此,下次提交修改,代碼會自動同步到指定目錄中
不過開始時筆者還是遇到一個問題解決不了,就是ssh公鑰交給服務器,也啟動git-daemon和sshd后,客戶端 git clone 時居然還要密碼,而且輸入密碼后提示 Permission denied, please try again.
后邊卻又離奇的可以了,可能是權限更改,不知道為什么,尤其是ssh怎么免密連接過程
大家有了解的告我一下,原理還沒搞明白。
本文鏈接 : http://blog.newbmiao.com/2014/12/28/build-your-git-server-on-linux.html
轉載于:https://www.cnblogs.com/newbmiao/p/build-your-git-server-on-linux.html
總結
以上是生活随笔為你收集整理的Git搭建自己的网站服务器(Linux)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DirectX 开发环境配置
- 下一篇: C#动态属性(.NET Framewor