zoukankan      html  css  js  c++  java
  • 分布式版本控制系统Git的安装及使用

    Git的安装分为客户端安装和服务端安装,鉴于我平时码代码在windows环境下,因此本文客户端安装直接在windows环境,服务端安装在linux环境下(centos).

    Git客户端安装

      客户端下载地址: https://git-scm.com,安装成功后,在开始菜单找到“Git”->"Git Bash",弹出类似命令行的窗口,说明安装成功

      安装成功后,在命令行中输入如下:

    git config --global user.name "your name"
    git config --global user.email "your email"

      生成密钥:执行以下命令之后,会在.ssh的目录中产生id_rsa和id_rsa.pub两个文件,id_rsa.pub为公钥,我们需要将它拷贝到git服务端的/home/git/.ssh/authorized_keys里面

    ssh-keygen -t rsa

      注意:如果在以后执行"git add" 命令时,出现:“LF will be replaced by CRLF” 警告,执行如下命令

    $ rm -rf .git  // 删除.git  
    $ git config --global core.autocrlf false  //禁用自动转换 

     Git服务端的安装

      第一步,安装git

    yum install git

      第二步,创建一个git用户,用来运行git服务

    adduser git

      第三步,创建证书登录

      收集所有需要登录的用户公钥,也就是他们的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys中,一行一个(如果不存在authorized_keys文件,执行:touch authorized_keys)

      第四步,初始化git仓库

      先选定一个目录作为git仓库,假设为/srv/yiwole,执行如下命令:

    cd /srv/yiwole
    git --bare init //建立裸仓库,服务器端只允许共享文件,不允许直接在上面工作

      进入srv目录,更改文件所有者为git

    chown -R git:git yiwole

      第五步,禁用shell登录

      出于安全考虑,创建的git用户不允许直接登录shell,打开/etc/passwd,找到类似下面的一行

    //注册名:口令:用户标识号:组标识号:用户名:用户主目录:命令解释程序
    git:x:1001:1001::/home/git:/bin/bash

      改为:

    git:x:1001:1001::/home/git:/usr/bin/git-shell

    搭建完成后,我们需要了解与git服务器交互过程中用到的主要命令,包括git clone,git remote git fetch,git push,git pull等

    1.git clone 

      此命令是我们与远程服务器交互的第一步,通过此命令,可以将远程版本库克隆到本地

      语法:git clone 版本库的网址 本地库名称(eg: git clone git@192.168.0.124:/srv/yiwole yiwole)

      本地库名称可以省略,省略之后,会在本地生成和版本库名称一致的文件

    2.git remote

      此命令用于管理远程主机,此命令在没有参数的情况下可列出所有主机

      eg:git remote add origin git@192.168.0.124:/srv/yiwole关联远程库

    3.git fetch

      此命令将远程版本库的更新更新到本地

      语法:git fetch 主机名称 分支名字(eg:get fetch origin master)

      分支名字可以省略,省略之后,将主机上的所有分支更新到本地

    4.git push

      此命令用于将本地分支的更新推送到远程主机

      语法 git push 远程主机名 本地分支名:远程分支名(git push origin master:master)

      如果省略远程分支名,则表示将本地分支推送与存在最终关系的远程分支,如果远程分支不存在,则会被新建。如果省略本地分支名,则表示要删除远程主机中分支

    5.git pull

      此命令用于获取远程分支的更新

      语法:git pull 远程主机 远程分支:本地分支(eg:git pull origin master:master)

    git 的钩子功能实现自动同步到站点目录(www)

    cd /srv/yiwole
    cd hooks
    //这里我们创建post-receive文件
    vim post-receive
    //在该文件里输入以下内容
    #!/bin/bash
    git --work-tree=/home/www checkout -f
    //保存退出后,将该文件用户及用户组都设置成git
    chown git:git post-receive
    //由于该文件其实就是一个shell文件,我们还应该为其设置可执行权限
    chmod 0755 post-receive

    注意:需要服务器上的git用户有权限进入www目录,可执行chown -R git:git www

      

  • 相关阅读:
    物理-接触力:百科
    物理-二力平衡:百科
    物理-摩擦力:百科
    物理-电磁力/静电力:百科
    物理-重力:百科
    化学-分子间作用力:百科
    物理-分子力:百科
    物理-斥力:百科
    物理-粒子/能量-衰变:百科
    物理-超光速:百科
  • 原文地址:https://www.cnblogs.com/freelyflying/p/7113666.html
Copyright © 2011-2022 走看看