GIT服务器配置及同步站点目录

2016-09-02 10:58:11来源:oschina作者:lock-li人点击

公司目前用的是SVN,一些同事经常提交产生冲突,加上自己对SVN的不熟悉,经常把别人写的代码给干掉了。现在准备用GIT,他们之间的区别在这里不细说了,一个是集中式的,一个是分布式的。


一.GIT安装


1.安装GIT服务


wget wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/git-core/git-1.9.0.tar.gz
tar zxvf git-1.9.0
./configure
make && make install

可能出现的错误:Can't locate ExtUtils/MakeMaker.pm in @INC


解决方法:


yum install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMake

安装好后,我们查看一下是否安装成功


git --version

结果应该是:git version 1.9.0,表示成功


2.建立仓库


adduser git ----建立git用户
cd /
mkdir gitwork----在根目录下建立git仓库
chown -R git:git gitwork----更改gitwork目录权限;本条和前面三条命令都是root用户执行
su git----切换到git用户
cd /gitwork ----切换到gitwork目录,如果一步一步的来的话,其实不用切换
git init --bare pmwork.git----初始化空的 Git 版本库于pmwork
cd ----切换到git用户主目录
mkdir .ssh----建立.ssh目录
chmod 700 .ssh ----设置权限,不然后面提交不了
cd .ssh ----进入.ssh目录
touch authorized_keys ----创建authorized_keys文件,这里放公钥的
chmod 600 authorized_keys ----设置权限

3.密钥和公钥的建立


建立密钥后,后面git提交就不用输入用户名和密码


在客户端下载puttygen,本地客户端是win10,git客户端已经安装过了,直接下一步下一步就可以完成


a.puttygen下载地址


http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html


下载:https://the.earth.li/~sgtatham/putty/latest/x86/puttygen.exe


b.双击打开puttygen


鼠标要puttygen软件上不停的动,才可以。这可能是这个软件的作者开的玩笑



把生成的公钥放到authorized_keys文件中


vi authorized_keys

c.私钥


直接点击按钮即可



保存到本地,名字叫git2.ppk,到时候git clone的时候会用到


d.客户端克隆



这里git服务器与git客户端安装介绍完毕。


二.GIT同步到站点目录


有时候,我们希望本地提交的文件直接在站点目录显示,这是可以的。svn里也有同样的功能,一个叫做钩子的功能


su git----切换到git用户
cd /git/pmwork.git/hooks----进行仓库hooks文件下
vi post-receive----添加以下内容,--work-tree=是你站点的目录,切记
#!/bin/bash
git --work-tree=/www/lockcom checkout -f
chmod +x post-recive ----设置钩子文件可执行权限

通常到此应该会成功,不过往往不同目录权限,导致提交上去的文件不能同步到站点目录,所以要更改权限。可以把用户权限统一设置一下,这样就不会造成权限问题


这里的站点目录用户是 apache,所以要把apache组给git用户


usermod -a -G git apache

更改站点目录权限,通用775就可以,不过我在本地测试了,不可以,改成777就可以~


chmod -R 777 /www/lockcom

这样你进入站点目录,应该可以看到你提交的文件!

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台