• 软件:git-2.9.5  

  • 系统:Centos 6.8 

  • 客户端: win7 _Git-2.16.2-64


1:git安装

  • 1.1:安装git环境准备

  • 1.2:创建用户及配置家目录

  • 1.3:编译安装

  • 1.4:环境配置

  • 1.5:配置帮助文件

  • 1.6:查看版本


2: 认证及配置仓库

  • 2.1:认证

  • 2.2:服务端初始化仓库


3: 客户端安装 (  windows客户端)

  • 3.1:下载地址

  • 3.2:安装

  • 3.3: 客户端配置

  • 3.4:本地操作

  • 3.5:测试下载

  • 3.6:使用pycharm做测试


4: 配置http服务

  • 4.1:安装apache

  • 4.2:用户及权限配置

  • 4.3:配置文件

  • 4.4:仓库配置

  • 4.5:访问测试


5:功能使用

  • 查看日志 git log 

  • 分支 git branch

  • 删除分支 git branch -D verionNumber

  • 功能使用: http://blog.51cto.com/xiong51/2089848

  

6: Gitlab

    // 基于浏览器访问Git服务器


N: FAQ 一些碰到的问题整理


git下载地址:

     https://mirrors.edge.kernel.org/pub/software/scm/git/


1:git安装

  1.1:安装git环境准备

1
yum -y  install  gcc openssl openssl-devel curl curl-devel unzip perl perl-devel expat expat-devel zlib zlib-devel asciidoc xmlto gettext-devel openssh-clients

 

   1.2:创建用户及配置家目录

1
2
3
[root@testss git] # useradd -r -s /bin/bash -d /home/git git
[root@testss git] # mkdir /home/git
[root@testss git] # chown git.git /home/git/ -R

  

  1.3:编译安装

1
2
3
4
[root@testss git-2.9.5] # tar xf git-2.9.5.tar.xz 
[root@testss git-2.9.5] # cd git-2.9.5
[root@testss git-2.9.5] # ./configure --prefix=/usr/local/git --with-openssl --with-libpcre 
[root@testss git-2.9.5] # make -j 2 && make -j 2 install


  1.4:环境及用户权限配置

1
2
3
4
5
6
7
[root@testss git-2.9.5] # echo "export PATH=/usr/local/git/bin/:$PATH" > /etc/profile.d/git.sh
[root@testss git-2.9.5] # source !$
 
[root@testss git-2.9.5] # cat /etc/passwd  将/bin/bash改为如下 
     git:x:496:496:: /home/git : /usr/local/git/bin/git-shell
 
//  说明:git用户可以正常通过 ssh 使用git,但无法登录shell,因为我们为git 用户指定的git-shell每次一登录就自动退出


  1.5:配置帮助文件

1
2
[root@testss git-2.9.5] # /usr/local/git/share
[root@testss share] # ln -sv man/ /usr/share/

  

  1.6:查看版本

1
2
[root@testss share] # git --version
   git version 2.9.5


2: 认证及配置仓库

  2.1:认证

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
[root@testss share] # ssh-keygen 
Generating public /private  rsa key pair.
Enter  file  in  which  to save the key ( /root/ . ssh /id_rsa ): 
Created directory  '/root/.ssh' .
Enter passphrase (empty  for  no passphrase): 
Enter same passphrase again: 
Your identification has been saved  in  /root/ . ssh /id_rsa .
Your public key has been saved  in  /root/ . ssh /id_rsa .pub.
The key fingerprint is:
34:25:50:bd:96:f9:63:c7:f8:a3:c7:76:2c:c5:c5:79 root@testss
The key's randomart image is:
+--[ RSA 2048]----+
|      .oo..      |
|         o.      |
|        o  +   ..|
|       . .=    .E|
|        S. . o .o|
|            = o o|
|           . = o |
|              B o|
|            .+ + |
+-----------------+
 
//  配置用户权限
[root@testss share] # cd /home/git
[root@testss git] # mkdir .ssh
[root@testss git] # chmod 700 .ssh/
[root@testss git] # chmod 600 /home/git/.ssh/authorized_keys 
[root@testss git] # chown git.git .ssh/ -R
 
// 初始化密码
[root@testss git] # echo "xiong" | passwd --stdin git
 
// 建立双机互信
[root@testss git] # cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys
 
//  git免密登陆
[root@testss git] # cat ~/.ssh/id_rsa.pub > /home/git/.ssh/authorized_keys


  2.2:服务端初始化仓库

1
2
3
4
5
6
7
8
9
10
11
[root@testss git] # mkdir testone            //创建git存储仓库
[root@testss git] # chown git.git testone/   //设定repo权限
[root@testss git] # chmod 755 testone/
 
[root@zabbix testone] # mkdir test.git
[root@zabbix testone] # cd test.git/
[root@zabbix  test .git] # git init --bare
     //  语法 git init --bare 仓库名.git
初始化空的 Git 仓库于  /home/git/testone/test .git/
 
//  到目前为止,这只是一个空仓库,空仓库是不能clone的。为了能clone,我们必须先让某个有权限的人放一个初始化的版本到仓库中,下面用一个用户来克隆


  // 克隆之前先安装一个客户端,如下所示


3:客户端配置 

        提示:没有图的都是一直Next

  3.1:下载地址

      下载地址:git客户端下载地址1   git客户端下载地址2

   

  3.2:安装

      说明:     文本资源来源于: http://blog.csdn.net/yaojxing/article/details/72902973

  • (1)图标组件(Addition icons) : 选择是否创建桌面快捷方式。

  • (2)桌面浏览(Windows Explorer integration) : 浏览源码的方法,使用bash 或者 使用Git GUI工具。

  • (3)关联配置文件 : 是否关联 git 配置文件, 该配置文件主要显示文本编辑器的样式。

  • (4)关联shell脚本文件 : 是否关联Bash命令行执行的脚本文件。

  • (5)使用TrueType编码 : 在命令行中是否使用TruthType编码, 该编码是微软和苹果公司制定的通用编码。

       image.png


      // 使用notepad++ 文本编辑器,也可以使用默认的

       image.png 


设置环境变量

  • 选择使用什么样的命令行工具,一般情况下我们默认使用Git Bash即可:

  • (1)Git自带:使用Git自带的Git Bash命令行工具。

  • (2)系统自带CMD:使用Windows系统的命令行工具。

  • (3)二者都有:上面二者同时配置,但是注意,这样会将windows中的find.exe 和 sort.exe工具覆盖,如果不懂这些尽量不要选择。

       image.png


   选择提交的时候换行格式

  • (1)检查出windows格式转换为unix格式:将windows格式的换行转为unix格式的换行再进行提交。

  • (2)检查出原来格式转为unix格式:不管什么格式的,一律转为unix格式的换行再进行提交。

  • (3)不进行格式转换 : 不进行转换,检查出什么,就提交什么。

       image.png


       // 完成安装

       image.png


  3.3: 客户端配置 

        // 首先配置一下身份,这样在提交代码的时候Git就可以知道是谁提交的了。打开Git Bash,输入下面的命令

1
2
git config -global user.name  "xiong"
git config -global user.email  "812374156@qq.com"


  3.4: 本地操作


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
//  创建目录,随便在哪创建都行
cd  /D/sss/
mkdir  test .ori
 
//  然后就可以开始创建代码仓库了,仓库(Repository)是用于保存版本管理所需信息的地方,所有本地提交的代码都会被提交到代码仓库中,如果有需要还可以再推送到远程仓库中,创建项目名称以及新建项目名:如图
cd  test .ori/
 
//  初始化仓库
$ git init
     Initialized empty Git repository  in  D: /sss/test .ori/.git/
 
//  新建一个文件
echo  "/*add something*/"  > hello
 
//  增加一个文件提交,可以忽略这个错误
$ git add . 
     warning: LF will be replaced by CRLF  in  hello.
     The  file  will have its original line endings  in  your working directory.
 
// 注释行
$ git commit -am  "testones"   
 
//  连接远端服务器 将版本库同步至本机上
$ git remote add  origin git@这里是你的git地址:testone /test .git
 
$ git push origin master
git@这里是你的git地址's password:
Counting objects: 3,  done .
Writing objects: 100% (3 /3 ), 212 bytes | 212.00 KiB /s done .
Total 3 (delta 0), reused 0 (delta 0)
To 这里是你的git地址:testone /test .git
  * [new branch]      master -> master             //  这样就说明提交成功


    提交成功并下载

        image.png


  3.5 测试

        继续克隆一个新的,并检查文件的上传效果

1
2
3
4
5
6
7
8
mkdir  two
cd  two/
 
$ git init
     Initialized empty Git repository  in  D: /sss/two/ .git/
$ git remote add  origin git@192.168.9.19:testone /test .git
 
$ git pull origin master

        image.png


  3.6 使用pycharm做测试

  // 提交测试  我这里使用的是Pycharm python版本是3.5

       // 第一步

            image.png

        // 第二步

image.png

    

        //第三步 创建一个新的目录

        image.png

        

        // 点yes 然后打开新的窗口

        image.png


        // 在gitdir 目录下创建一个文件是红色的,右键git -- add之后是绿色的, 修改之后是蓝色的

        image.png  // 这里提示文件是否跟着git服务器,点Yes之后就是绿色的了

        image.png


        // 提交文件

        image.png


        // 提交文件2

        image.png

        

        // 提交文件3

        image.png


        //提交文件4

        image.png

        image.png


        // 修改提交

        image.png


4: 配置http服务

      // 文档来源:https://www.jianshu.com/p/ff4a7efd63c5

  • 4.1:安装apache  

1
yum -y  install  httpd httpd-tools


  • 4.2:用户及权限配置

1
2
3
htpasswd -c  /etc/httpd/conf .d /git-team .htpasswd git
chmod  640  /etc/httpd/conf .d /git-team .htpasswd
chown  -R apache:apache  /etc/httpd/conf .d /git-team .htpasswd


  • 4.3:配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<VirtualHost *:80>
         //  这里写域名或者IP
         ServerName 192.168.1.19
         SetEnv GIT_HTTP_EXPORT_ALL
         SetEnv GIT_PROJECT_ROOT  /home/gitServer
         
         //  后成的git-http-backend 如果是源码安装的需要先查找它的位置,这点一定注意,
         ScriptAlias  /git/  /usr/local/git/libexec/git-core/git-http-backend/
         <Location />
                 AuthType Basic
                 AuthName  "Git"
                 AuthUserFile  /etc/httpd/conf .d /git-team .htpasswd
                 Require valid-user
         < /Location >
< /VirtualHost >


  • 4.4:仓库配置

    • // 这里是为了测试新加的一个仓库

1
2
3
4
5
6
7
8
mkdir  gitServer &&  cd  gitServer
mkdir  demo1 &&  cd  demo1
 
//  初始化仓库是必须的
git init --bare demo1.git
 
// 新加的仓库必须加上apache权限
chown  -R apache:apache .


  • 4.5:访问测试

        image.png



5:功能使用

        //查看日志 git log  查看提交修改了哪些内容

        image.png


        // 只查看一条日志  $ git log ed0d70885a461c839a46ae2f802e8a2fde66df65 -1

        image.png


        // 如果想要查看这条提交记录具体修改了什么内容,可以在命令中加入 -p参数:$ git log ed0d70885a461c839a46ae2f802e8a2fde66df65 -p

        image.png


        // 分支 git branch

            //查看当前版本有哪些分支,如果项目没有创建过任何分支,那么就只会有master存在,也就是主干线 

        image.png


       //创建一个分支

        image.png


        //你会发现master分支的前面有一个"*"号,说明目前我们的代码还是在master分支上的,我们可以用checkout命令将代码切换到别的分支上:

        image.png


        // 在分支上修改bug,并提交

        image.png


        //在某个分支上修改并提交的代码不会影响到其他的分支,如果我们在version1.0分支上修复了一个bug,在master这个分支上这个bug依然存在,我们可以使用merge命令完成合并操作:

        image.png


        这样就可以把version1.0分支上修改并提交的内容合并到master分支上了。

        在合并分支的时候还有可能出现代码冲突的情况,这时候就需要自己慢慢找到并解决这些冲突了。

        

        // 删除分支  $ git branch -D version1.0

        image.png


        // 直接修改源码使用git 提交

        

    

5: Gitlab

    // 基于浏览器访问Git服务器

    

  • 5.1:安装gitlab:

  •        GitLab是一个数据库支持的开源web应用,可通过Web界面进行访问公开的或者私人项目。它是一个拥有Github类似的功能、实现了自托管的Git项目仓库。所以相比于其他git服务器,它的安装过程涉及到更多的东西。幸运的是,这个过程有非常详细的文档说明和支持,而且在Bitnami(一个产生的开源软件的项目)可以获取一键安装包: 下载地址: gitlab下载    教程目前版本是 ( 10.5.6-0 )


  • 5.2:版本

    • // 我这里选择使用vmware vmdk安装包,直接下载,然后安装就能直接使用了

      image.png

        

  • 5.3:安装步骤

    1、打开vmware workstation,选择打开虚拟机、找着下载的vmdk开启,完毕

  • 2、开启之后直接让它自动安装就行

            image.png

  • 3、查看地址

    •  image.png


4、登陆并注册


image.pngimage.png



  • 5.6:创建一个项目

  • // 添加ssh-key 

  • image.png

        image.png

  • // 先建一个组

  • image.png

    // 创建项目

  • image.png

  


     // 选择要导入项目  这个url是个BUG,千万不要使用

    // 正确的使用方法,先创建一个gitlab空的仓库,然后再将git中的源码复制进去,这样就能直接配置gitlab了


        image.png