公司目前用的是SVN,一些同事经常提交产生冲突,加上自己对SVN的不熟悉,经常把别人写的代码给干掉了。现在准备用GIT,他们之间的区别在这里不细说了,一个是集中式的,一个是分布式的。
一.GIT安装
1.安装GIT服务
wget wget https://www.kernel.org/pub/software/scm/git/git-1.9.0.tar.gztar zxvf git-1.9.0./configuremake && make install
可能出现的错误:Can't locate ExtUtils/MakeMaker.pm in
解决方法:
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 版本库于pmworkcd ----切换到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/bashgit --work-tree=/www/lockcom checkout -fchmod +x post-receive ----设置钩子文件可执行权限
通常到此应该会成功,不过往往不同目录权限,导致提交上去的文件不能同步到站点目录,所以要更改权限。可以把用户权限统一设置一下,这样就不会造成权限问题
这里的站点目录用户是 apache,所以要把apache组给git用户
usermod -a -G git apache
更改站点目录权限,通用775就可以,不过我在本地测试了,不可以,改成777就可以~
chmod -R 777 /www/lockcom
这样你进入站点目录,应该可以看到你提交的文件!