git linux服务端和windown客户端安装配置

Git是一款免费、开源的分布式版本控制系统。server端拥有中心版本库,客户端从server端checkout完整版本库,日常使用客户端的版本库工作,当工作完成后将客户端版本库提交到中心版本库。

git和svn的区别:

   lGit是分布式的,而SVN不是
   Git 和 SVN 一样有自己的集中式版本库或服务器。但,GIT 更倾向于被使
用于分布式模式,也就是每个开发人员从中心版本库/服务器上 chect out 代 码后会在自己的机器上克隆一个自己的版本库。
  l Git将内容按元数据方式存储,而SVN是按文件
  所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs 等的 文件夹里。如果你把.git 目录的体积大小跟.svn 比较,你会发现它们差距很 大。因为.git 目录是处于你的机器上的一个克隆版的版本库,它拥有中心版 本库上所有的东西,例如标签,分支,版本记录等。
  l Git分支和SVN分支的不同
  SVN 的分支就是版本库中的另外一个目录,而 Git 的分支却是整个版本库的一个快照,而且可以在同一个工作目录下快速的在几个分支间切换。
  l Git没有一个全局的版本号,而SVN有
  SVN 的版本号实际是任何一个相应时间的源代码快照。而 Git 并没有这 样的一个全局版本号,这也是 Git 缺少的最大的一个特征
 l Git的内容完整性要优于SVN
  Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性, 确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

Git 的基本工作流程如下:  
  1. 在工作目录中修改某些文件。
  2. 对修改后的文件进行快照,然后保存到暂存区域。
  3. 提交更新,将保存在暂存区域的文件快照永久转储到 Git 目录中。

环境:

   server端 :centos7

   client端 : windowns7

 

server端 :

   yum安装 : yum  -y install git

    编译安装:

  wget https://www.kernel.org/pub/software/scm/git/

  yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
  tar -zxvf git-2.3.1.tar.gz
  cd git-2.3.1
  make prefix=/usr/local all
  make prefix=/usr/local install #root用户运行

   查看 : git - -version

    创建git用户和组 :

     useradd git

     groupadd git

               passwd git

  创建中心版本库 :

    mkdir /home/data/git/gittest.git/

    git init --bare /home/data/git/gittest.git

    cd /home/data/git/

    chown -R git:git gittest.git/

client端 :

    下载 Git for Windows,地址:https://git-for-windows.github.io/ 或直接下载TortoiseGit

    安装完之后,可以使用 Git Bash 作为命令行客户端。

    指定版本库【D:\git】 :git bash里执行

      cd /d/git/

      mkdir gittest_gitbash

      cd  gittest_gitbash

      git clone git@192.168.1.57:/home/data//get/gittest.git ---将server仓库完整checkout下来

此时 C:\Users\用户名\.ssh 下会多出一个文件 known_hosts,以后在这台电脑上再次连接目标 Git 服务器时不会再提示上面的语句

 

证书登录 :

  client端生成公私钥:

             $ ssh-keygen -t rsa -C "1838370@qq.com"   ---在C:\Users\用户名\.ssh目录下 生成:

                          id_rsa 是私钥      id_rsa.pub 是公钥

  server端开启证书认证:

      vim sshd_config写入如下内容:

        RSAAuthentication yes

        PubkeyAuthentication yes

        AuthorizedKeysFile .ssh/authorized_keys

      systemctl restart sshd.service重启ssh

      mkdir -p /home/git/.ssh/ ---创建git用户密钥存放路径

      chown -R git:git  /home/git/.ssh

      chmod 700  /home/git/.ssh

   client端导入公钥:

     ssh git@192.168.1.57 ‘cat >> /home/git/.ssh/authorized_keys‘ < ~/.ssh/id_rsa.pub (authorized_keys权限为600)

   从此以后不会有密码验证了

 

 

               


 

    

                    

 

posted @ 2017-08-17 14:31  阮小七  阅读(412)  评论(0编辑  收藏  举报