git 搭建

1.依赖库
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
2.yum install git
3创建一个git用户组和用户,用来运行git服务
groupadd gitgroup #创建git用户组
adduser git -g gitgroup  #创建git用户并指定为git在用户组


4.创建证书登录公钥位于id_rsa.pub文件(C:\Users\Administrator.ssh)中,把我们的公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。 
如果没有该文件创建它:
cd /home/git/    //账号位置下创建 ssh协议 公钥存里面  root创建的账号在home下面自动生成以账号为名的文件夹
mkdir .ssh
chmod 700 .ssh
touch .ssh/authorized_keys  #创建好文件后记得把公钥贴上去
chmod 644 .ssh/authorized_key

chown -R git:git /home/git


5.初始化Git仓库,//用root账号创建data/git目录,将git文件夹权限改为 git 用户 chown git:gitgroup git
mkdir /data/git/ -p
chown git:gitgroup git
su git  //切换到git账号
cd /data/git/   
git init --bare ttq.git //服务器上的Git仓库通常都以.git结尾


6.克隆仓库  本地仓库
下载客户端
创建用户名
$ git config --global user.name "ljlgit"
$ git config --global user.email "6097@qq.com"
生成公钥
ssh-keygen  //一直回车用默认的文件夹
cd ~/.ssh  //进入公钥目录,查询公钥 
id_rsa_pub //将公钥内容复制到服务器的 /home/git/.ssh/authorized_keys  上面第四步
git clone  git@IP:/data/git/ttq.git


git clone git@IP:/data/git/ttq.git ttq
cd ttq
touch index.php
git add index.php
git commit -m "test commit"
git push origin master //如果在这里推送失败了,极有可能是因为服务器的权限问题,方法是:chown -R git:git testgit


第一次push可能会有一些提示,因为裸版本库还什么都没有,你可能需要 git push origin master写全命令,之后就没必要了,直接 git push 就可以了


7.git服务器内容,自动同步到站点目录(web)
自动同步功能用到的是 git 的钩子功能,

服务器端:进入裸仓库:/data/git/ttq.git/hooks
//这里我们创建post-receive文件
vim post-receive
//在该文件里输入以下内容

#!/bin/bash
git --work-tree=/data/web checkout -f
//保存退出后,将该文件用户及用户组都设置成git
chown git:git post-receive
//由于该文件其实就是一个shell文件,我们还应该为其设置可执行权限
chmod +x post-receive
如果你在Git推送的工程中发现推送成功 但是在www目录下并没有自己的代码,这时候你可要注意了:这是由于文件夹的权限的原因造成的! 假设你的www目录的所属的用户组为root,你可以将你的git用户加入这个组;并给git添加写入权限,或者其他解决方法,反正你要服务器上的git用户有权限进入www文件夹。




Centos6.X 搭建git服务器
 # script.sh
    yum -y install git 
    adduser git
    mkdir /data/{web,git,temp} -p
    chown git:git /data/web -R
    chown git:git /data/git -R 
    
    su git 
    cd ~
    ssh-keygen 
    
    客户端[也用ssh-keygen]生成公钥 id_rsa.pub 并上传到 /data/temp/
    cat /home/git/.ssh/id_rsa.pub >> /home/git/.ssh/authorized_keys
    cat /data/temp/id_rsa.pub >> /home/git/.ssh/authorized_keys
    
    chmod 600 /home/git/.ssh/authorized_keys


    cd /data/git 
    git init --bare test.git 


    客户端clone
    git clone git@10.1.20.5:/data/git/test.git 
    
    
    同步到web
    [第一次需要手动 git clone 到web]
    cd /data/git/test.git/hooks
    cp post-receive.sample post-receive -a
    vi post-receive
    #!/bin/sh
    unset GIT_DIR
    cd /data/web/test
    git pull -q


    




# Centos install 
## git
    # insall git 
    yum -y install git 
    # git --version 
    
    # add git user 
    adduser git    
 


    mkdir /home/git/.ssh 
    #上传client的id_rsa.pub到服务器,追加到 authorized_keys
    cat /data/temp/id_rsa.pub >> /home/git/.ssh/authorized_keys
    chmod 600 authorized_keys


    mkdir /data/{temp,web,git} -p
    chown git:git  /data/web -R
    chown git:git  /data/git -R


    cd /data/git 
    git init --bare test.git 




     su git -s /bin/bash 
    unset GIT_DIR 


    # 把 id_rsa.pub 上传到 /data/temp
    






    git branch login(分支名称)
    git checkout login
    git add .
    git commit -m "分支里面的内容变化"


    git checkout master 
    git merge login
    git push origin login 
    
    
    git branch -a #查看所有分支 
    
## client 
    ssh-keygen (然后回车,回车,记住路径)    
    #Your public key has been saved in /c/Users/bill/.ssh/id_rsa.pub. 【c:/Users/bill/.ssh/id_rsa.pub】
    # 把 id_rsa.pub 上传到 /data/temp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值