美文网首页
搭建git环境

搭建git环境

作者: 隆long | 来源:发表于2018-01-05 15:22 被阅读0次

    前言

    整篇文章基本与网上很多教程一致,我根据我个人踩过的坑和理解在文中添加了一些注解。

    环境

    服务器

    ubuntu16.04 pthon2.7 git2.7.4(ubuntu)

    客户端

    Windows10 git2.15.1.windows2

    安装

    服务器

    安装git

    sudo apt-get install git-core 
    

    安装ssh,因为git使用ssh协议来传输

    sudo apt-get openssh-server openssh-client
    

    安装python的setuptools和gitosis,由于gitosis的安装需要依赖于python的一些工具,所以我们需要先安装python的setuptools。

    执行下面的命令:

    sudo apt-get install python-setuptools
    

    初始化一下服务器的git用户信息

    git config --global user.name "myname"
    git config --global user.email "******@gmail.com"
    

    获取gitosis

    git clone https://github.com/res0nat0r/gitosis.git
    

    获取gitosis文件后,进入到文件目录下面

    cd gitosis/
    

    接着使用python命令安装目录下的setup.py的python脚本进行安装

    sudo python2 setup.py install
    

    **注意,这里要使用python2.x来安装 **

    到这里,整个安装步骤就完成了git 的环境,下面进行配置

    创建一个账户(git)作为git服务器的管理员,可以管理其他用户的项目权限

    ubuntu:/tmp/gitosis$ sudo useradd -m git
    ubuntu:/tmp/gitosis$ sudo passwd git
    

    这里的用户是ubuntu的用户,不是git的用户,创建完后可以使用“git”这个用户名登陆ubuntu系统了

    然后再/home目录下创建一个项目仓库存储点,并设置只有git用户拥有所有权限,其他用户没有任何权限。

    ubuntu:/tmp/gitosis$ sudo mkdir /home/gitrepository
    ubuntu:/tmp/gitosis$ sudo chown -R git:git /home/gitrepository/
    

    你创建的git仓库都要使用上面语句进行授权,不然会报错

    环境配置完毕,可以正常使用git了,这里还没有讲到免密登陆配置公钥私钥的问题,这里我感觉比较复杂,后面再讲,在现在的情况下,你仍可以通过输入git用户的密码来使用git,有点麻烦。

    客户端

    安装 Git-2.15.1.2-64-bit.exe
    下载地址

    安装完右键任意文件夹 看到 Git Gui Here 和 Git Bash Here说明安装成功了

    使用git

    创建服务器仓库

    在服务器上创建一个git项目仓库(mytestproject.git),并授权

    ubuntu:/home/git$ cd /home/gitrepository    
    ubuntu:/home/git$ git init --bare mytestproject.git 
    ubuntu:/home/git$ sudo chown -R git:git mytestproject.git 
    

    PS:裸仓库的意思是这个仓库内,也就是mytestproject.git文件夹内不会有任何文件,不管你客户端提交了多少文件到这个仓库内,mytestproject.git 文件夹内都不会显示任何文件,这个裸仓库只会记录文件的信息,不会将文件信息以文件的方式存在这个目录下。而非裸仓库,就会讲仓库内记录的文件存储在文件目录内。

    生成好仓库以后,就可以使用客户端访问了

    客户端访问

    clone生成同步文件夹方式

    新建一个文件夹,用于存放同步的文件
    在这个文件夹内右键,选择Git Bash Here
    输入

    git clone ssh://git@xx.xx.xx.xx:xxxx/home/gitrepository/mytestproject.git
    

    注意:xx.xx.xx.xx 是你的服务器ip地址,

    :XXXX冒号后面是你服务器ssh协议的端口号,默认是22,如果你是默认的,就可以不填

    "git@"中的git是你在ubuntu下创建的用户的用户名,如果你不想使用git用户,那么你就要讲@前面的“git”换成你想要使用的用户名。

    顺利的话,你就成功的同步成功啦

    使用现有项目文件夹,同步

    在现有文件夹下右键,选择Git Bash Here
    输入

    git init
    

    设置远端地址

    git remote add origion ssh://git@xx.xx.xx.xx:xxxx/home/gitrepository/mytestproject.git
    

    然后你就可以将这个目录push到服务器上啦
    当然,不要忘了先add再commit最后再push

    git add -A #添加当前所有文件
    git commit -m "init"
    git push origin master
    

    成功推到服务器了

    定义自动同步文件夹

    自动同步主要用到的是git的钩子功能(hook)
    假定我们需要做到的是:服务器上的mytestproject.git仓库一接收到推送(push)
    就立马同步到/home/mytest 文件夹中去

    首先创建好mytest 文件夹

    mkdir /home/mytest
    

    然后赋予git用户操控它的权限

    sudo chown -R git:git /home/mytest 
    

    进入到mytestproject.git的钩子文件夹

    cd /home/gitrepository/mytestproject.git/hooks
    

    定义一个名为post-recive文件

    vi post-receive
    

    输入一下内容

    #!/bin/bash
    git --work-tree=/home/mytest checkout -f
    

    尝试push一下仓库,你就会发现/home/mytest文件夹下面都是你的工程文件啦

    相关文章

      网友评论

          本文标题:搭建git环境

          本文链接:https://www.haomeiwen.com/subject/bpksnxtx.html