zoukankan      html  css  js  c++  java
  • 代码管理平台

    代码管理平台介绍

    安装svn

    1.svn是cs架构,所以我们需要安装一个服务端

    [root@centos-01 ~]# yum install -y subversion
    

    2.创建版本库(我们的项目代码放置的地方),并用svnadmin命令初始化一些文件

    [root@centos-01 ~]# mkdir -p /data/svnroot/myproject
    [root@centos-01 ~]# svnadmin create /data/svnroot/myproject/
    [root@centos-01 ~]# ls -la !$
    ls -la /data/svnroot/myproject/
    总用量 8
    drwxr-xr-x 6 root root  86 4月  26 06:32 .
    drwxr-xr-x 3 root root  23 4月  26 06:31 ..
    drwxr-xr-x 2 root root  54 4月  26 06:32 conf
    drwxr-sr-x 6 root root 233 4月  26 06:32 db
    -r--r--r-- 1 root root   2 4月  26 06:32 format
    drwxr-xr-x 2 root root 231 4月  26 06:32 hooks
    drwxr-xr-x 2 root root  41 4月  26 06:32 locks
    -rw-r--r-- 1 root root 229 4月  26 06:32 README.txt
    [root@centos-01 ~]# 
    

    3.进入conf文件有三个文件authz是控制权限的,passwd是密码文件,svnserve.conf是仓库的配置文件

    [root@centos-01 ~]# cd !$/conf
    cd /data/svnroot/myproject//conf
    [root@centos-01 conf]# ls
    authz  passwd  svnserve.conf
    [root@centos-01 conf]# 
    

    4.编辑authz文件,在组中添加一个admins组加两个用户user1,user2

    [groups]
    # harry_and_sally = harry,sally
    # harry_sally_and_joe = harry,sally,&joe
    admins = user1,user2 (admin组有两个用户user1,user2)
    
    [/](指的是/data/svnroot/myproject/目录)
    @admins = rw(admins组下的用户有读写权限)
    * = r (其他所有用户有读权限)

    [myproject:/](另外一种写法,myproject是项目名) user1 = rw(user1是读写)

    5.创建用户和密码

    [root@centos-01 conf]# vim passwd 
    [root@centos-01 conf]# 
    [users]
    # harry = harryssecret
    # sally = sallyssecret
    user1 = user1
    user2 = user2
    

    6.编辑配置文件

    [root@centos-01 conf]# vim svnserve.conf 
    [root@centos-01 conf]# 
    [general]
    anon-access = none (匿名用户没有任何权限)
    auth-access = write  (被授权的用户有写的权限)
    password-db = passwd (用户的密码文件)
    authz-db = authz (权限控制文件)
    realm = /data/svnroot/myproject (对哪一个项目生效)
    

    7.启动svn(-d是后台模式启动)

    [root@centos-01 conf]# svnserve -d -r /data/svnroot/
    [root@centos-01 conf]# 
    
    [root@centos-01 conf]# ps aux|grep svn
    root       4100  0.0  0.1 197136  1024 ?        Ss   07:04   0:00 svnserve -d -r /data/svnroot/
    root       4102  0.0  0.0 112664   932 pts/0    S+   07:05   0:00 grep --color=auto svn
    [root@centos-01 conf]# netstat -lntp
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
    tcp        0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN      4100/svnserve       
    tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd           
    tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      1840/dnsmasq        
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1089/sshd           
    tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      984/cupsd           
    tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1624/master         
    tcp        0      0 192.168.133.44:27017    0.0.0.0:*               LISTEN      1504/mongod         
    tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN      1504/mongod         
    tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd           
    tcp6       0      0 :::22                   :::*                    LISTEN      1089/sshd           
    tcp6       0      0 ::1:631                 :::*                    LISTEN      984/cupsd           
    tcp6       0      0 ::1:25                  :::*                    LISTEN      1624/master         
    [root@centos-01 conf]# 
    

    8.清掉防火墙规则

    [root@centos-01 conf]# iptables -F
    [root@centos-01 conf]# iptables -nvL
    Chain INPUT (policy ACCEPT 9 packets, 692 bytes)
     pkts bytes target     prot opt in     out     source               destination         
    
    Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
     pkts bytes target     prot opt in     out     source               destination         
    
    Chain OUTPUT (policy ACCEPT 10 packets, 924 bytes)
     pkts bytes target     prot opt in     out     source               destination         
    [root@centos-01 conf]# 
    

    客户端上使用svn(linux)  

    1.在本机使用svn

    [root@centos-01 conf]# cd /home/
    [root@centos-01 home]# mkdir svntest
    [root@centos-01 home]# cd svntest/
    [root@centos-01 svntest]# ls
    [root@centos-01 svntest]# svn checkout svn://192.168.133.44/myproject --username=user1
    认证领域: <svn://192.168.133.44:3690> /data/svnroot/myproject
    “user1”的密码: 
    
    -----------------------------------------------------------------------
    注意!  你的密码,对于认证域:
    
       <svn://192.168.133.44:3690> /data/svnroot/myproject
    
    只能明文保存在磁盘上!  如果可能的话,请考虑配置你的系统,让 Subversion
    可以保存加密后的密码。请参阅文档以获得详细信息。
    
    你可以通过在“/root/.subversion/servers”中设置选项“store-plaintext-passwords”为“yes”或“no”,
    来避免再次出现此警告。
    -----------------------------------------------------------------------
    保存未加密的密码(yes/no)?yes
    取出版本 0。
    [root@centos-01 svntest]# ls
    myproject
    [root@centos-01 svntest]# ls -la myproject/
    总用量 0
    drwxr-xr-x 3 root root 18 4月  26 07:17 .
    drwxr-xr-x 3 root root 23 4月  26 07:17 ..
    drwxr-xr-x 4 root root 75 4月  26 07:17 .svn
    [root@centos-01 svntest]# 
    

    2.在另外一台机器使用svn(如果没有安装svn需要用yum安装)

    [root@centos-02 ~]# cd /home/
    [root@centos-02 home]# ls
    elastic  sunyujun  sunyujun1  user1  user2
    [root@centos-02 home]# svn checkout
    svn: E205001: 请使用 “svn help” 以得到更多信息
    svn: E205001: 没有提供足够的参数
    [root@centos-02 home]# svn checkout svn://192.168.133.44/myproject --username=user1
    认证领域: <svn://192.168.133.44:3690> /data/svnroot/myproject
    “user1”的密码: 
    认证领域: <svn://192.168.133.44:3690> /data/svnroot/myproject
    用户名: user1
    “user1”的密码: 
    
    -----------------------------------------------------------------------
    注意!  你的密码,对于认证域:
    
       <svn://192.168.133.44:3690> /data/svnroot/myproject
    
    只能明文保存在磁盘上!  如果可能的话,请考虑配置你的系统,让 Subversion
    可以保存加密后的密码。请参阅文档以获得详细信息。
    
    你可以通过在“/root/.subversion/servers”中设置选项“store-plaintext-passwords”为“yes”或“no”,
    来避免再次出现此警告。
    -----------------------------------------------------------------------
    保存未加密的密码(yes/no)?yes
    A    myproject/123.txt
    取出版本 1。
    [root@centos-02 home]# 
    

    3.客户端上添加666.txt文件并svn提交

    [root@centos-02 home]# ls
    elastic  myproject  sunyujun  sunyujun1  user1  user2
    [root@centos-02 home]# cd myproject/
    [root@centos-02 myproject]# ls
    123.txt
    [root@centos-02 myproject]# touch 666.txt
    [root@centos-02 myproject]# ls
    123.txt  666.txt
    [root@centos-02 myproject]# svn add 666.txt 
    A         666.txt
    [root@centos-02 myproject]# svn commit -m "add 666.txt"
    正在增加       666.txt
    传输文件数据.
    提交后的版本为 2。
    [root@centos-02 myproject]# 
    

    4.服务端更新  

    [root@centos-01 myproject]# ls
    123.txt
    [root@centos-01 myproject]# svn up
    正在升级 '.':
    A    666.txt
    更新到版本 2。
    [root@centos-01 myproject]# 
    

    5.我们第二次不用再输入密码了是因为系统已经记录了我们的密码

    [root@centos-01 svn.simple]# pwd
    /root/.subversion/auth/svn.simple
    [root@centos-01 svn.simple]# cat 4b291284476d572783808d129e4feb70 
    K 8
    passtype
    V 6
    simple
    K 8
    password
    V 5
    user1
    K 15
    svn:realmstring
    V 51
    <svn://192.168.133.44:3690> /data/svnroot/myproject
    K 8
    username
    V 5
    user1
    END
    [root@centos-01 svn.simple]# 
    

    6.修改文件内容并提交到svn,服务端更新

    [root@centos-02 myproject]# ls
    123.txt  666.txt
    [root@centos-02 myproject]# vim 666.txt 
    [root@centos-02 myproject]# cat 666.txt 
    1111111
    [root@centos-02 myproject]# 

        [root@centos-02 myproject]# svn commit -m "ch 666.txt"
        正在发送 666.txt
        传输文件数据.
        提交后的版本为 3。
        [root@centos-02 myproject]#

    [root@centos-01 myproject]# ls
    123.txt  666.txt
    [root@centos-01 myproject]# svn up
    正在升级 '.':
    U    666.txt
    更新到版本 3。
    [root@centos-01 myproject]# cat 666.txt 
    1111111
    [root@centos-01 myproject]# 
    

    7.svn删除文件

    [root@centos-01 myproject]# ls
    123.txt  666.txt
    [root@centos-01 myproject]# svn delete 123.txt 
    D         123.txt
    [root@centos-01 myproject]# svn commit -m "delete 123.txt"
    正在删除       123.txt
    
    提交后的版本为 4。
    [root@centos-01 myproject]# 
    
    [root@centos-02 myproject]# svn up
    正在升级 '.':
    D    123.txt
    更新到版本 4。
    [root@centos-02 myproject]# 
    

    8.查看日志

    [root@centos-02 myproject]# svn log
    ------------------------------------------------------------------------
    r4 | user1 | 2018-04-26 08:00:13 +0800 (四, 2018-04-26) | 1 行
    
    delete 123.txt
    ------------------------------------------------------------------------
    r3 | user1 | 2018-04-26 07:55:22 +0800 (四, 2018-04-26) | 1 行
    
    ch 666.txt
    ------------------------------------------------------------------------
    r2 | user1 | 2018-04-26 07:42:55 +0800 (四, 2018-04-26) | 1 行
    
    add 666.txt
    ------------------------------------------------------------------------
    r1 | user1 | 2018-04-26 07:26:25 +0800 (四, 2018-04-26) | 1 行
    
    add 123.txt
    ------------------------------------------------------------------------
    [root@centos-02 myproject]# 
    

    客户端上使用svn(windows)

    https://tortoisesvn.net/index.zh.html

    1.svn checkout

    单机上使用git(上)

     

    1.git是分布式的,不依赖网络,我在我的电脑上使用git,你在你的电脑上使用git互不影响,不需要把代码更新到服务端上去。

    2.安装git

    [root@centos-01 ~]# yum install -y git
    [root@centos-01 ~]# mkdir /data/gitroot
    [root@centos-01 ~]# cd /data/gitroot/
    [root@centos-01 gitroot]# ls
    [root@centos-01 gitroot]# git init  (初始化仓库,svn初始化仓库用svnadmin)
    初始化空的 Git 版本库于 /data/gitroot/.git/
    [root@centos-01 gitroot]# ls -la
    总用量 0
    drwxr-xr-x 3 root root  18 4月  26 23:19 .
    drwxr-xr-x 5 root root  51 4月  26 23:18 ..
    drwxr-xr-x 7 root root 119 4月  26 23:19 .git
    [root@centos-01 gitroot]# 
    
    [root@centos-01 gitroot]# ls .git/
    branches  config  description  HEAD  hooks  info  objects  refs
    [root@centos-01 gitroot]# vim 1.txt
    [root@centos-01 gitroot]# cat 1.txt 
    aaaaaaaaaaaaaa
    [root@centos-01 gitroot]# git add 1.txt 
    [root@centos-01 gitroot]# git commit -m "add 1.txt"
    
    *** Please tell me who you are.
    
    Run
    
      git config --global user.email "you@example.com"
      git config --global user.name "Your Name"
    
    to set your account's default identity.
    Omit --global to set the identity only in this repository.
    
    fatal: unable to auto-detect email address (got 'root@centos-01.(none)')
    [root@centos-01 gitroot]# git config --global user.email "278108678@qq.com"
    [root@centos-01 gitroot]# git config --global "phper"
    error: key does not contain a section: phper
    [root@centos-01 gitroot]# git config --global user.name "phper"
    [root@centos-01 gitroot]# git commit -m "add 1.txt"
    [master(根提交) 178684e] add 1.txt
     1 file changed, 1 insertion(+)
     create mode 100644 1.txt
    [root@centos-01 gitroot]# vim 1.txt 
    [root@centos-01 gitroot]# cat 1.txt 
    aaaaaaaaaaaaaa
    bbbbbbbbbbbbbb
    [root@centos-01 gitroot]# git add 1.txt 
    [root@centos-01 gitroot]# git commit -m "add 1.txt"
    [master 173e740] add 1.txt
     1 file changed, 1 insertion(+)
    [root@centos-01 gitroot]# git commit -m "add 1.txt agin"
    # 位于分支 master
    无文件要提交,干净的工作区
    [root@centos-01 gitroot]# git status
    # 位于分支 master
    无文件要提交,干净的工作区
    [root@centos-01 gitroot]# vim 1.txt 
    [root@centos-01 gitroot]# git status
    # 位于分支 master
    # 尚未暂存以备提交的变更:
    #   (使用 "git add <file>..." 更新要提交的内容)
    #   (使用 "git checkout -- <file>..." 丢弃工作区的改动)
    #
    #	修改:      1.txt
    #
    修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
    [root@centos-01 gitroot]# git diff 1.txt 
    diff --git a/1.txt b/1.txt
    index 88cd09c..387c6e1 100644
    --- a/1.txt
    +++ b/1.txt
    @@ -1,2 +1,3 @@
     aaaaaaaaaaaaaa
     bbbbbbbbbbbbbb
    +cccccccccccccc
    [root@centos-01 gitroot]# 
    

    [root@centos-01 gitroot]# git add 1.txt 
    [root@centos-01 gitroot]# git commit -m "add 1.txt agin"
    [master 8cc5c90] add 1.txt agin
     1 file changed, 1 insertion(+)
    [root@centos-01 gitroot]# vim 1.txt 
    [root@centos-01 gitroot]# cat 1.txt 
    aaaaaaaaaaaaaa
    bbbbbbbbbbbbbb
    cccccccccccccc
    dddddddddddddd
    [root@centos-01 gitroot]# git add 1.txt; git commit -m "ch 1.txt agin"
    [master 892a682] ch 1.txt agin
     1 file changed, 1 insertion(+)
    [root@centos-01 gitroot]# git log
    commit 892a682ff335c779233b60e58d023e97ea6f0f7b
    Author: phper <278108678@qq.com>
    Date:   Thu Apr 26 23:40:39 2018 +0800
    
    
    
        ch 1.txt agin
    
    commit 8cc5c9023033d1aedc9b01698437cddeef9bc504
    Author: phper <278108678@qq.com>
    Date:   Thu Apr 26 23:39:31 2018 +0800
    
        add 1.txt agin
    
    commit 173e740090f5b7b5bf79169a7eb2e5de6a150f23
    Author: phper <278108678@qq.com>
    Date:   Thu Apr 26 23:26:47 2018 +0800
    
        add 1.txt
    
    commit 178684eb053088a2db6879c0b1b1df805816cf6c
    Author: phper <278108678@qq.com>
    Date:   Thu Apr 26 23:25:27 2018 +0800
    
    
    [root@centos-01 gitroot]# cat /root/.gitconfig 
    [user]
    	email = 278108678@qq.com
    	name = phper
    [root@centos-01 gitroot]# 
    

    1.回退到之前的某个版本

    [root@centos-01 gitroot]# git log --pretty=oneline
    892a682ff335c779233b60e58d023e97ea6f0f7b ch 1.txt agin
    8cc5c9023033d1aedc9b01698437cddeef9bc504 add 1.txt agin
    173e740090f5b7b5bf79169a7eb2e5de6a150f23 add 1.txt
    178684eb053088a2db6879c0b1b1df805816cf6c add 1.txt
    [root@centos-01 gitroot]# git reset --hard 173e740090f5
    HEAD 现在位于 173e740 add 1.txt
    [root@centos-01 gitroot]# git log --pretty=oneline
    173e740090f5b7b5bf79169a7eb2e5de6a150f23 add 1.txt
    178684eb053088a2db6879c0b1b1df805816cf6c add 1.txt
    [root@centos-01 gitroot]# git reflog
    173e740 HEAD@{0}: reset: moving to 173e740090f5
    892a682 HEAD@{1}: commit: ch 1.txt agin
    8cc5c90 HEAD@{2}: commit: add 1.txt agin
    173e740 HEAD@{3}: commit: add 1.txt
    178684e HEAD@{4}: commit (initial): add 1.txt
    [root@centos-01 gitroot]# git reset --hard 892a682
    HEAD 现在位于 892a682 ch 1.txt agin
    [root@centos-01 gitroot]# git log --pretty=oneline
    892a682ff335c779233b60e58d023e97ea6f0f7b ch 1.txt agin
    8cc5c9023033d1aedc9b01698437cddeef9bc504 add 1.txt agin
    173e740090f5b7b5bf79169a7eb2e5de6a150f23 add 1.txt
    178684eb053088a2db6879c0b1b1df805816cf6c add 1.txt
    [root@centos-01 gitroot]# 
    

    2.不小心删了文件

    [root@centos-01 gitroot]# ls
    1.txt
    [root@centos-01 gitroot]# rm -f 1.txt 
    [root@centos-01 gitroot]# ls
    [root@centos-01 gitroot]# git checkout -- 1.txt
    [root@centos-01 gitroot]# ls
    1.txt
    [root@centos-01 gitroot]# vim 1.txt 
    [root@centos-01 gitroot]# cat 1.txt 
    aaaaaaaaaaaaaa
    bbbbbbbbbbbbbb
    cccccccccccccc
    dddddddddddddd
    eeeeeeeeeeeeee
    [root@centos-01 gitroot]# git add 1.txt 
    [root@centos-01 gitroot]# git reset HEAD 1.txt (将上面add的标记去掉)
    重置后撤出暂存区的变更:
    M	1.txt
    [root@centos-01 gitroot]#git checkout -- 1.txt(将代码库里面最新的文件搞回来)

    3.删除文件

    [root@centos-01 gitroot]# git rm 1.txt 
    error: '1.txt' 有本地修改
    (使用 --cached 保存文件,或用 -f 强制删除)
    [root@centos-01 gitroot]# 
    [root@centos-01 gitroot]# vim 1.txt 
    [root@centos-01 gitroot]# git checkout -- 1.txt 
    [root@centos-01 gitroot]# cat 1.txt 
    aaaaaaaaaaaaaa
    bbbbbbbbbbbbbb
    cccccccccccccc
    dddddddddddddd
    [root@centos-01 gitroot]# git rm 1.txt 
    rm '1.txt'
    [root@centos-01 gitroot]# git commit -m "delete 1.txt"
    [master eb733c2] delete 1.txt
     1 file changed, 4 deletions(-)
     delete mode 100644 1.txt
    [root@centos-01 gitroot]# git checkout -- 1.txt 
    error: pathspec '1.txt' did not match any file(s) known to git.
    [root@centos-01 gitroot]# git log --pretty=oneline
    eb733c21800a28909e478756464ccc59ebab23dc delete 1.txt
    892a682ff335c779233b60e58d023e97ea6f0f7b ch 1.txt agin
    8cc5c9023033d1aedc9b01698437cddeef9bc504 add 1.txt agin
    173e740090f5b7b5bf79169a7eb2e5de6a150f23 add 1.txt
    178684eb053088a2db6879c0b1b1df805816cf6c add 1.txt
    [root@centos-01 gitroot]# git reset --hard 892a682ff335c
    HEAD 现在位于 892a682 ch 1.txt agin
    [root@centos-01 gitroot]# ls
    1.txt
    [root@centos-01 gitroot]# cat 1.txt 
    aaaaaaaaaaaaaa
    bbbbbbbbbbbbbb
    cccccccccccccc
    dddddddddddddd
    [root@centos-01 gitroot]# 
    

    建立远程仓库  

     1.到github上注册一个账号,sign up注册一个账号,注册完成之后点击sign in登录,登录之后新建仓库。

    2.点击创建仓库

    3.创建秘钥,点击头像下面的setting

    4.在客户端生成公钥放到github上去

    [root@centos-01 ~]# ssh-keygen 
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa): 
    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:
    7a:0a:cb:9e:c0:5f:6b:1b:33:db:95:35:9b:43:6a:10 root@centos-01
    The key's randomart image is:
    +--[ RSA 2048]----+
    |                 |
    |                 |
    |        E        |
    |         .       |
    |        S   +    |
    | .     . . = +   |
    |  o . * . = +    |
    |   + =.X o   .   |
    |   .*.=..        |
    +-----------------+
    [root@centos-01 ~]# cat .ssh/id_rsa.pub 
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBTj3AjVScW1LoWdcbJLLwhgNcemhko3PMu8Sze9QePkvvCi49seQrcet9Yp9zxAVovs74tWHQPmfJ3h2OMx3GDk36b14O+8WpbKnZV/pN0PUX1ZvVVfw7v8t22SDHYm09jHHbzQJdiMK2T
    J89RcKmE8d8D2Z9igInhdK2BEaGp4JYVQZdhchM58JcE+rvPcdsDhEhsA+z88UejWBGMZpJo1T8OCaK0OKPqKR7ZRt1kSlG78CDuHoldDu9HaKMm5ED/JxguC8EyIOLnnHTa/3kutMIEdK4ZOowlAEsgVmrKizMa7JvDOHhl5ycoaL8DD/rdh
    aLquXX+8bRcgqXl385 root@centos-01 [root@centos-01 ~]#

    5.git推送文件到github

    [root@centos-01 tmp]# cd /tmp/
    [root@centos-01 tmp]# mkdir linuxlearn
    [root@centos-01 tmp]# cd linuxlearn/
    [root@centos-01 linuxlearn]# echo "# linuxlearn" >> README.md
    [root@centos-01 linuxlearn]# git init
    初始化空的 Git 版本库于 /tmp/linuxlearn/.git/
    [root@centos-01 linuxlearn]# ls -la
    总用量 8
    drwxr-xr-x   3 root root   35 5月   5 16:26 .
    drwxrwxrwt. 19 root root 4096 5月   5 16:25 ..
    drwxr-xr-x   7 root root  119 5月   5 16:26 .git
    -rw-r--r--   1 root root   13 5月   5 16:25 README.md
    [root@centos-01 linuxlearn]# git add README.md
    [root@centos-01 linuxlearn]# git commit -m "fldsjfds"
    [master(根提交) a08b6ef] fldsjfds
     1 file changed, 1 insertion(+)
     create mode 100644 README.md
    [root@centos-01 linuxlearn]# git remote add origin https://github.com/sunyujun/linuxlearn.git
    

    6.验证发现推送成功

    7.再次推送文件测试

    [root@centos-01 ~]# cd /tmp/linuxlearn/
    [root@centos-01 linuxlearn]# ls
    README.md
    [root@centos-01 linuxlearn]# vim 2.txt
    [root@centos-01 linuxlearn]# cat 2.txt 
    111111111111111111
    [root@centos-01 linuxlearn]# git add 2.txt
    [root@centos-01 linuxlearn]# git commit -m "add 2.txt"
    [master 21c6941] add 2.txt
     1 file changed, 1 insertion(+)
     create mode 100644 2.txt
    [root@centos-01 linuxlearn]# git push
    warning: push.default 未设置,它的默认值将会在 Git 2.0 由 'matching'
    修改为 'simple'。若要不再显示本信息并在其默认值改变后维持当前使用习惯,
    进行如下设置:
    
      git config --global push.default matching
    
    若要不再显示本信息并从现在开始采用新的使用习惯,设置:
    
      git config --global push.default simple
    
    参见 'git help config' 并查找 'push.default' 以获取更多信息。
    ('simple' 模式由 Git 1.7.11 版本引入。如果您有时要使用老版本的 Git,
    为保持兼容,请用 'current' 代替 'simple' 模式)
    
    Username for 'https://github.com': sunyujun
    Password for 'https://sunyujun@github.com': 
    Counting objects: 4, done.
    Compressing objects: 100% (2/2), done.
    Writing objects: 100% (3/3), 267 bytes | 0 bytes/s, done.
    Total 3 (delta 0), reused 0 (delta 0)
    To https://github.com/sunyujun/linuxlearn.git
       a08b6ef..21c6941  master -> master
    [root@centos-01 linuxlearn]# 
    

    8.成功

    克隆远程仓库

    1.克隆远程的项目

    [root@centos-01 linuxlearn]# cd /home/
    [root@centos-01 home]# ls
    sunyujun  svntest  user1  user2
    [root@centos-01 home]# git clone git@github.com:aminglinux/lanmp.git
    正克隆到 'lanmp'...
    The authenticity of host 'github.com (13.229.188.59)' can't be established.
    RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added 'github.com,13.229.188.59' (RSA) to the list of known hosts.
    remote: Counting objects: 32, done.
    接收对象中: 100% (32/32), 5.99 KiB | 0 bytes/s, done.
    remote: Total 32 (delta 0), reused 0 (delta 0), pack-reused 32
    处理 delta 中: 100% (6/6), done.
    [root@centos-01 home]# ls
    lanmp  sunyujun  svntest  user1  user2
    [root@centos-01 home]# cd lanmp/
    [root@centos-01 lanmp]# ls
    lanmp.sh  README.md
    [root@centos-01 lanmp]# 
    
    [root@centos-01 lanmp]# cat lanmp.sh 
    #!/bin/bash
    ## written by aming.
    ## 2015-06-24.
    
    #######Begin########
    echo "It will install lamp or lnmp."
    sleep 1
    ##check last command is OK or not.
    check_ok() {
    if [ $? != 0 ]
    then
        echo "Error, Check the error log."
        exit 1
    fi
    }
    ##get the archive of the system,i686 or x86_64.
    ar=`arch`
    ##close seliux
    sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
    selinux_s=`getenforce`
    if [ $selinux_s == "enforcing" ]
    then
        setenforce 0
    fi
    ##close iptables
    iptables-save > /etc/sysconfig/iptables_`date +%s`
    iptables -F
    service iptables save
    
    ##if the packge installed ,then omit.
    myum() {
    if ! rpm -qa|grep -q "^$1"
    then
        yum install -y $1
        check_ok
    else
        echo $1 already installed.
    fi
    }
    
    ## install some packges.
    for p in gcc wget perl perl-devel libaio libaio-devel pcre-devel zlib-devel
    do
        myum $p
    done
    
    ##install epel.
    if rpm -qa epel-release >/dev/null
    then
        rpm -e epel-release
    fi
    if ls /etc/yum.repos.d/epel-6.repo* >/dev/null 2>&1
    then
        rm -f /etc/yum.repos.d/epel-6.repo*
    fi
    wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-6.repo
    
    
    ##function of installing mysqld.
    install_mysqld() {
        case $mysql_v in
            5.1)
                cd /usr/local/src
                [ -f mysql-5.1.72-linux-$ar-glibc23.tar.gz ] || wget http://mirrors.sohu.com/mysql/MySQL-5.1/mysql-5.1.72-linux-$ar-glibc23.tar.gz
                tar zxf mysql-5.1.72-linux-$ar-glibc23.tar.gz
                check_ok
                [ -d /usr/local/mysql ] && /bin/mv /usr/local/mysql /usr/local/mysql_`date +%s`
                mv mysql-5.1.72-linux-$ar-glibc23 /usr/local/mysql
                check_ok
                if ! grep '^mysql:' /etc/passwd
                then
                    useradd -M mysql -s /sbin/nologin
                    check_ok
                fi
                myum compat-libstdc++-33
                [ -d /data/mysql ] && /bin/mv /data/mysql /data/mysql_`date +%s`
                mkdir -p /data/mysql
                chown -R mysql:mysql /data/mysql
                cd /usr/local/mysql
                ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
                check_ok
                /bin/cp support-files/my-huge.cnf /etc/my.cnf
                check_ok
                sed -i '/^[mysqld]$/adatadir = /data/mysql' /etc/my.cnf
                /bin/cp support-files/mysql.server /etc/init.d/mysqld
                sed -i 's#^datadir=#datadir=/data/mysql#' /etc/init.d/mysqld
                chmod 755 /etc/init.d/mysqld
                chkconfig --add mysqld
                chkconfig mysqld on
                service mysqld start
                check_ok
                break
                ;;
            5.6)
                cd /usr/local/src
                [ -f mysql-5.6.26-linux-glibc2.5-$ar.tar.gz ] || wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.26-linux-glibc2.5-$ar.tar.gz
                tar zxf mysql-5.6.26-linux-glibc2.5-$ar.tar.gz
                check_ok
                [ -d /usr/local/mysql ] && /bin/mv /usr/local/mysql /usr/local/mysql_bak
                mv mysql-5.6.26-linux-glibc2.5-$ar /usr/local/mysql
                if ! grep '^mysql:' /etc/passwd
                then
                    useradd -M mysql -s /sbin/nologin
                fi
                myum compat-libstdc++-33
                [ -d /data/mysql ] && /bin/mv /data/mysql /data/mysql_bak
                mkdir -p /data/mysql
                chown -R mysql:mysql /data/mysql
                cd /usr/local/mysql
                ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
                check_ok
                /bin/cp support-files/my-default.cnf /etc/my.cnf
                check_ok
                sed -i '/^[mysqld]$/adatadir = /data/mysql' /etc/my.cnf
                /bin/cp support-files/mysql.server /etc/init.d/mysqld
                sed -i 's#^datadir=#datadir=/data/mysql#' /etc/init.d/mysqld
                chmod 755 /etc/init.d/mysqld
                chkconfig --add mysqld
                chkconfig mysqld on
                service mysqld start
                check_ok
                break
                ;;
    
             *)
                echo "only 1(5.1) or 2(5.6)"
                exit 1
                ;;
        esac
    }
    
    ##function of install httpd.
    install_httpd() {
    echo "Install apache version 2.2."
    cd /usr/local/src
    [ -f httpd-2.2.16.tar.gz ] || wget  http://syslab.comsenz.com/downloads/linux/httpd-2.2.16.tar.gz
    tar zxf  httpd-2.2.16.tar.gz && cd httpd-2.2.16
    check_ok
    ./configure 
    --prefix=/usr/local/apache2 
    --with-included-apr 
    --enable-so 
    --enable-deflate=shared 
    --enable-expires=shared 
    --enable-rewrite=shared 
    --with-pcre
    check_ok
    make && make install
    check_ok
    }
    
    ##function of install lamp's php.
    install_php() {
    echo -e "Install php.
    Please chose the version of php."
        case $php_v in
            5.4)
                cd /usr/local/src/
                [ -f php-5.4.45.tar.bz2 ] || wget 'http://cn2.php.net/get/php-5.4.45.tar.bz2/from/this/mirror' -O php-5.4.45.tar.bz2
                tar jxf php-5.4.45.tar.bz2 && cd php-5.4.45
    
                for p in openssl-devel bzip2-devel 
                libxml2-devel curl-devel libpng-devel 
                libjpeg-devel freetype-devel libmcrypt-devel
                libtool-ltdl-devel perl-devel
                do
                    myum $p
                done
    
                check_ok
                ./configure 
                --prefix=/usr/local/php 
                --with-apxs2=/usr/local/apache2/bin/apxs 
                --with-config-file-path=/usr/local/php/etc  
                --with-mysql=/usr/local/mysql 
                --with-libxml-dir 
                --with-gd 
                --with-jpeg-dir 
                --with-png-dir 
                --with-freetype-dir 
                --with-iconv-dir 
                --with-zlib-dir 
                --with-bz2 
                --with-openssl 
                --with-mcrypt 
                --enable-soap 
                --enable-gd-native-ttf 
                --enable-mbstring 
                --enable-sockets 
                --enable-exif 
                --disable-ipv6
                check_ok
                make && make install
                check_ok
                [ -f /usr/local/php/etc/php.ini ] || /bin/cp php.ini-production  /usr/local/php/etc/php.ini
                break
                ;;
            5.6)
                cd /usr/local/src/
                [ -f php-5.6.6.tar.gz ] || wget http://mirrors.sohu.com/php/php-5.6.6.tar.gz
                tar zxf php-5.6.6.tar.gz &&   cd php-5.6.6
                for p in openssl-devel bzip2-devel 
                libxml2-devel curl-devel libpng-devel 
                libjpeg-devel freetype-devel libmcrypt-devel
                libtool-ltdl-devel perl-devel
                do
                    myum $p
                done
    
                ./configure 
                --prefix=/usr/local/php 
                --with-apxs2=/usr/local/apache2/bin/apxs 
                --with-config-file-path=/usr/local/php/etc  
                --with-mysql=/usr/local/mysql 
                --with-libxml-dir 
                --with-gd 
                --with-jpeg-dir 
                --with-png-dir 
                --with-freetype-dir 
                --with-iconv-dir 
                --with-zlib-dir 
                --with-bz2 
                --with-openssl 
                --with-mcrypt 
                --enable-soap 
                --enable-gd-native-ttf 
                --enable-mbstring 
                --enable-sockets 
                --enable-exif 
                --disable-ipv6
                check_ok
                make && make install
                check_ok
                [ -f /usr/local/php/etc/php.ini ] || /bin/cp php.ini-production  /usr/local/php/etc/php.ini
                break
                ;;
    
            *)
                echo "only 1(5.4) or 2(5.6)"
                ;;
        esac
    }
    
    ##function of apache and php configue.
    join_apa_php() {
    sed -i '/AddType .*.gz .tgz$/aAddType application/x-httpd-php .php' /usr/local/apache2/conf/httpd.conf
    check_ok
    sed -i 's/DirectoryIndex index.html/DirectoryIndex index.php index.html index.htm/' /usr/local/apache2/conf/httpd.conf
    check_ok
    cat > /usr/local/apache2/htdocs/index.php <<EOF
    <?php
       phpinfo();
    ?>
    EOF
    
    if /usr/local/php/bin/php -i |grep -iq 'date.timezone => no value'
    then
        sed -i '/;date.timezone =$/adate.timezone = "Asia/Chongqing"'  /usr/local/php/etc/php.ini
    fi
    
    /usr/local/apache2/bin/apachectl restart
    check_ok
    }
    
    ##function of check service is running or not, example nginx, httpd, php-fpm.
    check_service() {
    if [ "$1" == "phpfpm" ]
    then
        s="php-fpm"
    else
        s=$1
    fi
    n=`ps aux |grep "$s"|wc -l`
    if [ $n -gt 1 ]
    then
        echo "$1 service is already started."
    else
        if [ -f /etc/init.d/$1 ]
        then
            /etc/init.d/$1 start
            check_ok
        else
            install_$1
        fi
    fi
    }
    
    ##function of install lamp
    lamp() {
    check_service mysqld
    check_service httpd
    install_php
    join_apa_php
    echo "LAMP done,Please use 'http://your ip/index.php' to access."
    }
    
    ##function of install nginx
    install_nginx() {
    cd /usr/local/src
    [ -f nginx-1.8.0.tar.gz ] || wget http://nginx.org/download/nginx-1.8.0.tar.gz
    tar zxf nginx-1.8.0.tar.gz
    cd nginx-1.8.0
    myum pcre-devel
    ./configure --prefix=/usr/local/nginx
    check_ok
    make && make install
    check_ok
    if [ -f /etc/init.d/nginx ]
    then
        /bin/mv /etc/init.d/nginx  /etc/init.d/nginx_`date +%s`
    fi
    curl http://www.apelearn.com/study_v2/.nginx_init  -o /etc/init.d/nginx
    check_ok
    chmod 755 /etc/init.d/nginx
    chkconfig --add nginx
    chkconfig nginx on
    curl http://www.apelearn.com/study_v2/.nginx_conf -o /usr/local/nginx/conf/nginx.conf
    check_ok
    service nginx start
    check_ok
    echo -e "<?php
        phpinfo();
    ?>" > /usr/local/nginx/html/index.php
    check_ok
    }
    
    ##function of install php-fpm
    install_phpfpm() {
    echo -e "Install php.
    Please chose the version of php."
        case $php_v in
            5.4)
                cd /usr/local/src/
                [ -f php-5.4.45.tar.bz2 ] || wget 'http://cn2.php.net/get/php-5.4.45.tar.bz2/from/this/mirror' -O php-5.4.45.tar.bz2
                tar jxf php-5.4.45.tar.bz2 && cd php-5.4.45
                for p in  openssl-devel bzip2-devel 
                libxml2-devel curl-devel libpng-devel 
                libjpeg-devel freetype-devel libmcrypt-devel
                libtool-ltdl-devel perl-devel
                do
                    myum $p
                done
                if ! grep -q '^php-fpm:' /etc/passwd
                then
                    useradd -M -s /sbin/nologin php-fpm
                    check_ok
                fi
                ./configure 
                --prefix=/usr/local/php-fpm 
                --with-config-file-path=/usr/local/php-fpm/etc 
                --enable-fpm 
                --with-fpm-user=php-fpm 
                --with-fpm-group=php-fpm 
                --with-mysql=/usr/local/mysql 
                --with-mysql-sock=/tmp/mysql.sock 
                --with-libxml-dir 
                --with-gd 
                --with-jpeg-dir 
                --with-png-dir 
                --with-freetype-dir 
                --with-iconv-dir 
                --with-zlib-dir 
                --with-mcrypt 
                --enable-soap 
                --enable-gd-native-ttf 
                --enable-ftp 
                --enable-mbstring 
                --enable-exif 
                --enable-zend-multibyte 
                --disable-ipv6 
                --with-pear 
                --with-curl 
                --with-openssl
                check_ok
                make && make install
                check_ok
                [ -f /usr/local/php-fpm/etc/php.ini ] || /bin/cp php.ini-production  /usr/local/php-fpm/etc/php.ini
                if /usr/local/php-fpm/bin/php -i |grep -iq 'date.timezone => no value'
                then
                    sed -i '/;date.timezone =$/adate.timezone = "Asia/Chongqing"'  /usr/local/php-fpm/etc/php.ini
                    check_ok
                fi
                [ -f /usr/local/php-fpm/etc/php-fpm.conf ] || curl http://www.apelearn.com/study_v2/.phpfpm_conf -o /usr/local/php-fpm/etc/php-fpm.conf
                [ -f /etc/init.d/phpfpm ] || /bin/cp sapi/fpm/init.d.php-fpm /etc/init.d/phpfpm
                chmod 755 /etc/init.d/phpfpm
                chkconfig phpfpm on
                service phpfpm start
                check_ok
                break
                ;;
            5.6)
                cd /usr/local/src/
                [ -f php-5.6.6.tar.gz ] || wget http://mirrors.sohu.com/php/php-5.6.6.tar.gz
    
                tar zxf php-5.6.6.tar.gz &&   cd php-5.6.6
                for p in  openssl-devel bzip2-devel 
                libxml2-devel curl-devel libpng-devel 
                libjpeg-devel freetype-devel libmcrypt-devel
                libtool-ltdl-devel perl-devel
                do
                    myum $p
                done
    
                if ! grep -q '^php-fpm:' /etc/passwd
                then
                    useradd -M -s /sbin/nologin php-fpm
                fi
                check_ok
                ./configure 
                --prefix=/usr/local/php-fpm 
                --with-config-file-path=/usr/local/php-fpm/etc 
                --enable-fpm 
                --with-fpm-user=php-fpm 
                --with-fpm-group=php-fpm 
                --with-mysql=/usr/local/mysql 
                --with-mysql-sock=/tmp/mysql.sock 
                --with-libxml-dir 
                --with-gd 
                --with-jpeg-dir 
                --with-png-dir 
                --with-freetype-dir 
                --with-iconv-dir 
                --with-zlib-dir 
                --with-mcrypt 
                --enable-soap 
                --enable-gd-native-ttf 
                --enable-ftp 
                --enable-mbstring 
                --enable-exif 
                --disable-ipv6 
                --with-pear 
                --with-curl 
                --with-openssl
                check_ok
                make && make install
                check_ok
                [ -f /usr/local/php-fpm/etc/php.ini ] || /bin/cp php.ini-production  /usr/local/php-fpm/etc/php.ini
                if /usr/local/php-fpm/bin/php -i |grep -iq 'date.timezone => no value'
                then
                    sed -i '/;date.timezone =$/adate.timezone = "Asia/Chongqing"'  /usr/local/php-fpm/etc/php.ini
                    check_ok
                fi
                [ -f /usr/local/php-fpm/etc/php-fpm.conf ] || curl http://www.apelearn.com/study_v2/.phpfpm_conf -o /usr/local/php-fpm/etc/php-fpm.conf
                check_ok
                [ -f /etc/init.d/phpfpm ] || /bin/cp sapi/fpm/init.d.php-fpm /etc/init.d/phpfpm
                chmod 755 /etc/init.d/phpfpm
                chkconfig phpfpm on
                service phpfpm start
                check_ok
                break
                ;;
    
            *)
                echo 'only 1(5.4) or 2(5.6)'
                ;;
        esac
    }
    
    ##function of install lnmp
    lnmp() {
    check_service mysqld
    check_service nginx
    check_service phpfpm
    echo "The lnmp done, Please use 'http://your ip/index.php' to access."
    }
    
    read -p "Please chose which type env you install, (lamp|lnmp)? " t
    case $t in
        lamp)
            read -p "Please chose the version of mysql. (5.1|5.6)" mysql_v
            read -p "Please chose the version of php. (5.4|5.6)" php_v
            lamp
            ;;
        lnmp)
            read -p "Please chose the version of mysql. (5.1|5.6)" mysql_v
            read -p "Please chose the version of php. (5.4|5.6)" php_v
            lnmp
            ;;
        *)
            echo "Only 'lamp' or 'lnmp' your can input."
            ;;
    esac
    ##111111
    ##########end##############
    [root@centos-01 lanmp]# 

    2.更改README.md文件添加CCCCC,提示我没有权限,看来是不能更改了

    [root@centos-01 lanmp]# vim README.md 
    [root@centos-01 lanmp]# cat README.md 
    # lanmp
    lamp/lnmp 一键安装脚本
    author: aming
    version: 0.2
    aaaaa
    as
    df
    asd
    f
    bbbbb
    CCCCC
    [root@centos-01 lanmp]# git add README.md
    [root@centos-01 lanmp]# git commit -m "change README.md"
    [master efffdbe] change README.md
     1 file changed, 1 insertion(+)
    [root@centos-01 lanmp]# git push
    warning: push.default 未设置,它的默认值将会在 Git 2.0 由 'matching'
    修改为 'simple'。若要不再显示本信息并在其默认值改变后维持当前使用习惯,
    进行如下设置:
    
      git config --global push.default matching
    
    若要不再显示本信息并从现在开始采用新的使用习惯,设置:
    
      git config --global push.default simple
    
    参见 'git help config' 并查找 'push.default' 以获取更多信息。
    ('simple' 模式由 Git 1.7.11 版本引入。如果您有时要使用老版本的 Git,
    为保持兼容,请用 'current' 代替 'simple' 模式)
    
    Warning: Permanently added the RSA host key for IP address '13.250.177.223' to the list of known hosts.
    ERROR: Permission to aminglinux/lanmp.git denied to sunyujun.
    fatal: Could not read from remote repository.
    
    Please make sure you have the correct access rights
    and the repository exists.
    [root@centos-01 lanmp]# 
    

    3.如果线上的更改了,我们客户端相同步该怎么办,用git pull拉下来

    [root@centos-01 lanmp]# git pull
    Already up-to-date.
    [root@centos-01 lanmp]# 
    

    分支管理  

    1.查看仓库中都有哪些分支

    [root@centos-01 lanmp]# cd /data/gitroot/
    [root@centos-01 gitroot]# git branch 
    * master
    [root@centos-01 gitroot]#
    

    2.创建新分支

    [root@centos-01 gitroot]# git branch syj
    [root@centos-01 gitroot]# git branch
    * master
      syj
    [root@centos-01 gitroot]# 
    

    3.切换分支

    [root@centos-01 gitroot]# git checkout syj
    切换到分支 'syj'
    [root@centos-01 gitroot]# 
    

    4.星号到了syj分支上代表当前在syj分支中

    [root@centos-01 gitroot]# git branch 
      master
    * syj
    [root@centos-01 gitroot]# 
    

    5.我们在syj分支下创建一个新的文件2.txt,然后提交,然后再切换到master分支发现没有这个2.txt文件,说明分支是相互隔离开的。

    [root@centos-01 ~]# cd /data/gitroot/
    [root@centos-01 gitroot]# git branch
      master
    * syj
    [root@centos-01 gitroot]# ls
    1.txt
    [root@centos-01 gitroot]# vim 2.txt
    [root@centos-01 gitroot]# cat 2.txt 
    2222222222
    [root@centos-01 gitroot]# git add .
    [root@centos-01 gitroot]# git commit -m "add 2.txt"
    [syj db5eca6] add 2.txt
     1 file changed, 1 insertion(+)
     create mode 100644 2.txt
    [root@centos-01 gitroot]# git checkout master
    切换到分支 'master'
    [root@centos-01 gitroot]# ls
    1.txt
    [root@centos-01 gitroot]# 
    

    1.我们想让两个分支合并,首先需要切换到目标分支下,然后使用git merge syj命令将syj分支下的变更同步到master上来

    [root@centos-01 gitroot]# git checkout master 
    已经位于 'master'
    [root@centos-01 gitroot]# git merge syj
    更新 892a682..db5eca6
    Fast-forward
     2.txt | 1 +
     1 file changed, 1 insertion(+)
     create mode 100644 2.txt
    [root@centos-01 gitroot]# ls
    1.txt  2.txt
    [root@centos-01 gitroot]# 
    

    2.现在我们做一个合并冲突的实验,我们给master分支下的2.txt文件增加一些内容,给syj分支下的2.txt文件删除一些内容,然后合并分支试试。

    [root@centos-01 gitroot]# vim 2.txt 
    [root@centos-01 gitroot]# cat 2.txt 
    2222222222
    3333333333
    [root@centos-01 gitroot]# git add 2.txt
    [root@centos-01 gitroot]# git commit -m "ch 2.txt"
    [master 5e371af] ch 2.txt
     1 file changed, 1 insertion(+)
    [root@centos-01 gitroot]# git checkout syj
    切换到分支 'syj'
    [root@centos-01 gitroot]# vim 2.txt 
    [root@centos-01 gitroot]# cat 2.txt 
    2
    [root@centos-01 gitroot]# git add 2.txt
    [root@centos-01 gitroot]# git commit -m "ch 2.txt"
    [syj 9c66db9] ch 2.txt
     1 file changed, 1 insertion(+), 1 deletion(-)
    [root@centos-01 gitroot]# git checkout master 
    切换到分支 'master'
    [root@centos-01 gitroot]# git merge syj
    自动合并 2.txt
    冲突(内容):合并冲突于 2.txt
    自动合并失败,修正冲突然后提交修正的结果。
    [root@centos-01 gitroot]# 
    

    3.我们编辑两个分支下的2.txt文件两者保持一致。

    [root@centos-01 gitroot]# vim 2.txt 
    [root@centos-01 gitroot]# cat 2.txt 
    <<<<<<< HEAD
    2222222222
    3333333333
    =======
    2
    >>>>>>> syj
    [root@centos-01 gitroot]# vim 2.txt 
    [root@centos-01 gitroot]# cat 2.txt 
    2
    [root@centos-01 gitroot]# git checkout syj
    2.txt: needs merge
    error: 您需要先解决当前索引的冲突
    [root@centos-01 gitroot]# git add 2.txt
    [root@centos-01 gitroot]# git commit -m "ch 2.txt"
    [master 7b11106] ch 2.txt
    [root@centos-01 gitroot]# git merge syj
    Already up-to-date.
    [root@centos-01 gitroot]# git checkout syj
    切换到分支 'syj'
    [root@centos-01 gitroot]# cat 2.txt 
    2
    

    4.删除分支(-D强制删除分支)

    [root@centos-01 gitroot]# git checkout master 
    切换到分支 'master'
    [root@centos-01 gitroot]# git branch -d syj
    已删除分支 syj(曾为 9c66db9)。
    [root@centos-01 gitroot]# 
    

    远程分支管理

    1.我们先创建一个新文件

    2.接着我们创建一个新的分支dev

    3.下面我们克隆一下远程的仓库

    4.我们克隆完成之后发现克隆的分支里只有master,我们远程其实是有两个分支,还有一个dev

    [root@centos-01 tmp]# git clone https://github.com/sunyujun/linuxlearn.git
    正克隆到 'linuxlearn'...
    remote: Counting objects: 9, done.
    remote: Compressing objects: 100% (5/5), done.
    remote: Total 9 (delta 1), reused 5 (delta 0), pack-reused 0
    Unpacking objects: 100% (9/9), done.
    [root@centos-01 tmp]# cd linuxlearn/
    [root@centos-01 linuxlearn]# ls
    2.txt  linux.doc  README.md
    [root@centos-01 linuxlearn]# git branch
    * master
    [root@centos-01 linuxlearn]# 
    

    5.查看远程服务器的分支

    [root@centos-01 linuxlearn]# git ls-remote origin
    26359e748fd0482441e6b24fec1b73689774f8f9	HEAD
    26359e748fd0482441e6b24fec1b73689774f8f9	refs/heads/dev
    26359e748fd0482441e6b24fec1b73689774f8f9	refs/heads/master
    [root@centos-01 linuxlearn]# 

    6.切换分支到dev

    [root@centos-01 linuxlearn]# git checkout -b dev origin/dev 
    分支 dev 设置为跟踪来自 origin 的远程分支 dev。
    切换到一个新分支 'dev'
    [root@centos-01 linuxlearn]# git branch 
    * dev
      master
    [root@centos-01 linuxlearn]# 
    

    7.在dev分支下新建一个文件3.txt并推送到远程服务器

    [root@centos-01 linuxlearn]# ls
    2.txt  linux.doc  README.md
    [root@centos-01 linuxlearn]# vim 3.txt
    [root@centos-01 linuxlearn]# cat 3.txt 
    3333333333
    [root@centos-01 linuxlearn]# git add 3.txt
    [root@centos-01 linuxlearn]# git commit -m "ch 3.txt"
    [dev 9bafd0e] ch 3.txt
     1 file changed, 1 insertion(+)
     create mode 100644 3.txt
    [root@centos-01 linuxlearn]# git push
    warning: push.default 未设置,它的默认值将会在 Git 2.0 由 'matching'
    修改为 'simple'。若要不再显示本信息并在其默认值改变后维持当前使用习惯,
    进行如下设置:
    
      git config --global push.default matching
    
    若要不再显示本信息并从现在开始采用新的使用习惯,设置:
    
      git config --global push.default simple
    
    参见 'git help config' 并查找 'push.default' 以获取更多信息。
    ('simple' 模式由 Git 1.7.11 版本引入。如果您有时要使用老版本的 Git,
    为保持兼容,请用 'current' 代替 'simple' 模式)
    
    Username for 'https://github.com': sunyujun
    Password for 'https://sunyujun@github.com': 
    Counting objects: 4, done.
    Compressing objects: 100% (2/2), done.
    Writing objects: 100% (3/3), 254 bytes | 0 bytes/s, done.
    Total 3 (delta 1), reused 0 (delta 0)
    remote: Resolving deltas: 100% (1/1), completed with 1 local object.
    To https://github.com/sunyujun/linuxlearn.git
       26359e7..9bafd0e  dev -> dev
    [root@centos-01 linuxlearn]# 
    

    8.只推dev分支

    [root@centos-01 linuxlearn]# git push origin dev
    Username for 'https://github.com': sunyujun
    Password for 'https://sunyujun@github.com': 
    Everything up-to-date
    [root@centos-01 linuxlearn]#
    

    9.将客户端新建的分支推到远程客户端

    [root@centos-01 linuxlearn]# git branch dev2
    [root@centos-01 linuxlearn]# git branch 
    * dev
      dev2
      master
    [root@centos-01 linuxlearn]# git checkout dev2
    切换到分支 'dev2'
    [root@centos-01 linuxlearn]# ls
    2.txt  3.txt  linux.doc  README.md
    [root@centos-01 linuxlearn]# vim 4.txt
    [root@centos-01 linuxlearn]# cat 4.txt 
    444444444444
    [root@centos-01 linuxlearn]# git add 4.txt
    [root@centos-01 linuxlearn]# git commit -m "add 4.txt"
    [dev2 f3bea1d] add 4.txt
     1 file changed, 1 insertion(+)
     create mode 100644 4.txt
    [root@centos-01 linuxlearn]# git push origin dev2
    Username for 'https://github.com': sunyujun
    Password for 'https://sunyujun@github.com': 
    Counting objects: 4, done.
    Compressing objects: 100% (2/2), done.
    Writing objects: 100% (3/3), 256 bytes | 0 bytes/s, done.
    Total 3 (delta 1), reused 0 (delta 0)
    remote: Resolving deltas: 100% (1/1), completed with 1 local object.
    To https://github.com/sunyujun/linuxlearn.git
     * [new branch]      dev2 -> dev2
    [root@centos-01 linuxlearn]# 
    

    标签管理

    1.

    [root@centos-01 linuxlearn]# git checkout master
    切换到分支 'master'
    [root@centos-01 linuxlearn]# git tag v1.0
    [root@centos-01 linuxlearn]# git tag
    v1.0
    [root@centos-01 linuxlearn]# git show v1.0
    commit 26359e748fd0482441e6b24fec1b73689774f8f9
    Author: sunyujun <278108678@qq.com>
    Date:   Sun May 6 09:25:26 2018 +0800
    
        Create linux.doc
    
    diff --git a/linux.doc b/linux.doc
    new file mode 100644
    index 0000000..a08e1f3
    --- /dev/null
    +++ b/linux.doc
    @@ -0,0 +1 @@
    +linux
    [root@centos-01 linuxlearn]# git log --pretty=oneline
    26359e748fd0482441e6b24fec1b73689774f8f9 Create linux.doc
    21c6941c478471a8f192bd93c359759422d75aa3 add 2.txt
    a08b6ef1d0d706437114974776e83a9e659bc378 fldsjfds
    [root@centos-01 linuxlearn]# git tag v0.8 21c6941c4784
    [root@centos-01 linuxlearn]# git tag
    v0.8
    v1.0
    [root@centos-01 linuxlearn]# git log --pretty=oneline --abbrev-commit
    26359e7 Create linux.doc
    21c6941 add 2.txt
    a08b6ef fldsjfds
    [root@centos-01 linuxlearn]# git tag -a v0.1 -m "first tag" a08b6ef
    [root@centos-01 linuxlearn]# git tag
    v0.1
    v0.8
    v1.0
    [root@centos-01 linuxlearn]# git show v0.1
    tag v0.1
    Tagger: phper <278108678@qq.com>
    Date:   Tue May 8 06:34:26 2018 +0800
    
    first tag
    
    commit a08b6ef1d0d706437114974776e83a9e659bc378
    Author: phper <278108678@qq.com>
    Date:   Sat May 5 16:29:12 2018 +0800
    
        fldsjfds
    
    diff --git a/README.md b/README.md
    new file mode 100644
    index 0000000..eb983dd
    --- /dev/null
    +++ b/README.md
    @@ -0,0 +1 @@
    +# linuxlearn
    ...skipping...
    tag v0.1
    Tagger: phper <278108678@qq.com>
    Date:   Tue May 8 06:34:26 2018 +0800
    
    first tag
    
    commit a08b6ef1d0d706437114974776e83a9e659bc378
    Author: phper <278108678@qq.com>
    Date:   Sat May 5 16:29:12 2018 +0800
    
        fldsjfds
    
    diff --git a/README.md b/README.md
    new file mode 100644
    index 0000000..eb983dd
    --- /dev/null
    +++ b/README.md
    @@ -0,0 +1 @@
    +# linuxlearn
    ...skipping...
    tag v0.1
    Tagger: phper <278108678@qq.com>
    Date:   Tue May 8 06:34:26 2018 +0800
    
    first tag
    
    commit a08b6ef1d0d706437114974776e83a9e659bc378
    Author: phper <278108678@qq.com>
    Date:   Sat May 5 16:29:12 2018 +0800
    
        fldsjfds
    
    diff --git a/README.md b/README.md
    new file mode 100644
    index 0000000..eb983dd
    --- /dev/null
    +++ b/README.md
    @@ -0,0 +1 @@
    +# linuxlearn
    ...skipping...
    tag v0.1
    Tagger: phper <278108678@qq.com>
    Date:   Tue May 8 06:34:26 2018 +0800
    
    first tag
    
    commit a08b6ef1d0d706437114974776e83a9e659bc378
    Author: phper <278108678@qq.com>
    Date:   Sat May 5 16:29:12 2018 +0800
    
        fldsjfds
    
    diff --git a/README.md b/README.md
    new file mode 100644
    index 0000000..eb983dd
    --- /dev/null
    +++ b/README.md
    @@ -0,0 +1 @@
    +# linuxlearn
    ...skipping...
    tag v0.1
    Tagger: phper <278108678@qq.com>
    Date:   Tue May 8 06:34:26 2018 +0800
    
    first tag
    
    commit a08b6ef1d0d706437114974776e83a9e659bc378
    Author: phper <278108678@qq.com>
    Date:   Sat May 5 16:29:12 2018 +0800
    
        fldsjfds
    
    diff --git a/README.md b/README.md
    new file mode 100644
    index 0000000..eb983dd
    --- /dev/null
    +++ b/README.md
    @@ -0,0 +1 @@
    +# linuxlearn
    ...skipping...
    tag v0.1
    Tagger: phper <278108678@qq.com>
    Date:   Tue May 8 06:34:26 2018 +0800
    
    first tag
    
    commit a08b6ef1d0d706437114974776e83a9e659bc378
    Author: phper <278108678@qq.com>
    Date:   Sat May 5 16:29:12 2018 +0800
    
        fldsjfds
    
    diff --git a/README.md b/README.md
    new file mode 100644
    index 0000000..eb983dd
    --- /dev/null
    +++ b/README.md
    @@ -0,0 +1 @@
    +# linuxlearn
    
    [root@centos-01 linuxlearn]# 
    

    2.删除一个tag

    [root@centos-01 linuxlearn]# git tag -d v0.1
    已删除 tag 'v0.1'(曾为 9739c3d)
    [root@centos-01 linuxlearn]# git push origin v1.0 (推送一个tag)
    Username for 'https://github.com': sunyujun
    Password for 'https://sunyujun@github.com': 
    Total 0 (delta 0), reused 0 (delta 0)
    To https://github.com/sunyujun/linuxlearn.git
     * [new tag]         v1.0 -> v1.0
    [root@centos-01 linuxlearn]# 
    

    3.将所有的tag推送到远程

    [root@centos-01 linuxlearn]# git push --tag origin 
    Username for 'https://github.com': sunyujun
    Password for 'https://sunyujun@github.com': 
    Total 0 (delta 0), reused 0 (delta 0)
    To https://github.com/sunyujun/linuxlearn.git
     * [new tag]         v0.8 -> v0.8
    [root@centos-01 linuxlearn]# 
    

    4.远程同步删除tag

    [root@centos-01 linuxlearn]# git tag
    v0.8
    v1.0
    [root@centos-01 linuxlearn]# git tag -d v0.8
    已删除 tag 'v0.8'(曾为 21c6941)
    [root@centos-01 linuxlearn]# git tag
    v1.0
    [root@centos-01 linuxlearn]# git push origin :refs/tags/v0.8
    Username for 'https://github.com': sunyujun
    Password for 'https://sunyujun@github.com': 
    To https://github.com/sunyujun/linuxlearn.git
     - [deleted]         v0.8
    [root@centos-01 linuxlearn]# 
    

    git别名

     1.commit的别名改成ci

    [root@centos-01 linuxlearn]# git config --global alias.ci commit
    [root@centos-01 linuxlearn]# ls
    2.txt  linux.doc  README.md
    [root@centos-01 linuxlearn]# vim 3.txt
    [root@centos-01 linuxlearn]# cat 3.txt 
    3333333333333
    [root@centos-01 linuxlearn]# git add 3.txt
    [root@centos-01 linuxlearn]# git ci -m "add 3.txt"
    [master b299542] add 3.txt
     1 file changed, 1 insertion(+)
     create mode 100644 3.txt
    [root@centos-01 linuxlearn]# 
    

    2.查看git别名使用的命令

    [root@centos-01 linuxlearn]# git config --list |grep alias
    alias.ci=commit
    [root@centos-01 linuxlearn]# 
    

    3.查看log

    4.取消别名

    [root@centos-01 linuxlearn]# git config --global --unset alias.ci
    

    搭建git服务器  

    1.首先安装git

    [root@centos-02 ~]# yum install -y git
    

    2.禁止git用户远程登录

    [root@centos-02 ~]# useradd -s /usr/bin/git-shell git
    [root@centos-02 ~]# cd /home/git/
    [root@centos-02 git]# ls
    [root@centos-02 git]# mkdir .ssh
    [root@centos-02 git]# touch .ssh/authorized_keys
    [root@centos-02 git]# chmod 600 .ssh/authorized_keys 
    [root@centos-02 git]# chown -R git:git .ssh
    [root@centos-02 git]# 
    

    3.在01服务器上将公钥放到02服务器的git家目录authorized_keys文件中

    [root@centos-01 ~]# cat .ssh/id_rsa.pub 
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBTj3AjVScW1LoWdcbJLLwhgNcemhko3PMu8Sze9QePkvvCi49seQrcet9Yp9zxAVovs74tWHQPmfJ3h2OMx3GDk36b14O+8WpbKnZV/pN0PUX1ZvVVfw7v8t22SDHYm09jHHbzQJdiMK2TJ
    89RcKmE8d8D2Z9igInhdK2BEaGp4JYVQZdhchM58JcE+rvPcdsDhEhsA+z88UejWBGMZpJo1T8OCaK0OKPqKR7ZRt1kSlG78CDuHoldDu9HaKMm5ED/JxguC8EyIOLnnHTa/3kutMIEdK4ZOowlAEsgVmrKizMa7JvDOHhl5ycoaL8DD/rdhaL
    quXX+8bRcgqXl385 root@centos-01 [root@centos-01 ~]# [root@centos-02 git]# vim .ssh/authorized_keys [root@centos-02 git]# cat .ssh/authorized_keys ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBTj3AjVScW1LoWdcbJLLwhgNcemhko3PMu8Sze9QePkvvCi49seQrcet9Yp9zxAVovs74tWHQPmfJ3h2OMx3GDk36b14O+8WpbKnZV/pN0PUX1ZvVVfw7v8t22SDHYm09jHHbzQJdiMK2TJ
    89RcKmE8d8D2Z9igInhdK2BEaGp4JYVQZdhchM58JcE+rvPcdsDhEhsA+z88UejWBGMZpJo1T8OCaK0OKPqKR7ZRt1kSlG78CDuHoldDu9HaKMm5ED/JxguC8EyIOLnnHTa/3kutMIEdK4ZOowlAEsgVmrKizMa7JvDOHhl5ycoaL8DD/rdhaL
    quXX+8bRcgqXl385 root@centos-01 [root@centos-02 git]#

    4.测试公钥是否设置成功,结果说明成功了只是git是不允许登录的

    [root@centos-01 ~]# ssh git@192.168.133.88
    fatal: Interactive git shell is not enabled.
    hint: ~/git-shell-commands should exist and have read and execute access.
    Connection to 192.168.133.88 closed.
    [root@centos-01 ~]# 
    

    5.创建一个git的仓库

    [root@centos-02 git]# cd /data/
    [root@centos-02 data]# mkdir /data/gitroot
    [root@centos-02 data]# cd /data/gitroot/
    [root@centos-02 gitroot]# git init --bare sample.git
    初始化空的 Git 版本库于 /data/gitroot/sample.git/
    [root@centos-02 gitroot]# ls
    sample.git
    [root@centos-02 gitroot]# chown -R git.git sample.git
    [root@centos-02 gitroot]# 
    

    6.在远程上(01客户端)克隆服务器仓库

    [root@centos-01 ~]# git clone git@192.168.133.88:/data/gitroot/sample.git
    正克隆到 'sample'...
    warning: 您似乎克隆了一个空版本库。
    [root@centos-01 ~]# cd sample/
    [root@centos-01 sample]# ls -la
    总用量 4
    drwxr-xr-x   3 root root   18 5月   9 06:53 .
    dr-xr-x---. 21 root root 4096 5月   9 06:53 ..
    drwxr-xr-x   7 root root  119 5月   9 06:53 .git
    [root@centos-01 sample]# cp /e
    epel-release-7-11.noarch.rpm  etc/
    [root@centos-01 sample]# cp /etc/init.d/mysqld .
    [root@centos-01 sample]# git add .
    [root@centos-01 sample]# git commit -m "add new file"
    [master(根提交) e841397] add new file
     1 file changed, 388 insertions(+)
     create mode 100755 mysqld
    [root@centos-01 sample]# git push origin master
    Counting objects: 3, done.
    Compressing objects: 100% (2/2), done.
    Writing objects: 100% (3/3), 3.88 KiB | 0 bytes/s, done.
    Total 3 (delta 0), reused 0 (delta 0)
    To git@192.168.133.88:/data/gitroot/sample.git
     * [new branch]      master -> master
    [root@centos-01 sample]# 
    

    7.测试git服务器

    [root@centos-01 sample]# echo "lafldkflksdf" > 222.txt
    [root@centos-01 sample]# git add 222.txt
    [root@centos-01 sample]# git commit -m "add 222.txt"
    [master 6c56668] add 222.txt
     1 file changed, 1 insertion(+)
     create mode 100644 222.txt
    [root@centos-01 sample]# git push
    warning: push.default 未设置,它的默认值将会在 Git 2.0 由 'matching'
    修改为 'simple'。若要不再显示本信息并在其默认值改变后维持当前使用习惯,
    进行如下设置:
    
      git config --global push.default matching
    
    若要不再显示本信息并从现在开始采用新的使用习惯,设置:
    
      git config --global push.default simple
    
    参见 'git help config' 并查找 'push.default' 以获取更多信息。
    ('simple' 模式由 Git 1.7.11 版本引入。如果您有时要使用老版本的 Git,
    为保持兼容,请用 'current' 代替 'simple' 模式)
    
    Counting objects: 4, done.
    Compressing objects: 100% (2/2), done.
    Writing objects: 100% (3/3), 279 bytes | 0 bytes/s, done.
    Total 3 (delta 0), reused 0 (delta 0)
    To git@192.168.133.88:/data/gitroot/sample.git
       e841397..6c56668  master -> master
    [root@centos-01 sample]# cd /tmp/
    [root@centos-01 tmp]# git clone git@192.168.133.88:/data/gitroot/sample.git
    正克隆到 'sample'...
    remote: Counting objects: 6, done.
    remote: Compressing objects: 100% (4/4), done.
    remote: Total 6 (delta 0), reused 0 (delta 0)
    接收对象中: 100% (6/6), 4.13 KiB | 0 bytes/s, done.
    [root@centos-01 tmp]# ls sample/
    222.txt  mysqld
    [root@centos-01 tmp]# cd sample/
    [root@centos-01 sample]# vim 222.txt 
    [root@centos-01 sample]# cat 222.txt 
    lafldkflksdf
    alfdldsflsdlf
    [root@centos-01 sample]# git add 222.txt
    [root@centos-01 sample]# git commit -m "ch 222.txt"
    [master 6f7c268] ch 222.txt
     1 file changed, 1 insertion(+)
    [root@centos-01 sample]# git push
    warning: push.default 未设置,它的默认值将会在 Git 2.0 由 'matching'
    修改为 'simple'。若要不再显示本信息并在其默认值改变后维持当前使用习惯,
    进行如下设置:
    
      git config --global push.default matching
    
    若要不再显示本信息并从现在开始采用新的使用习惯,设置:
    
      git config --global push.default simple
    
    参见 'git help config' 并查找 'push.default' 以获取更多信息。
    ('simple' 模式由 Git 1.7.11 版本引入。如果您有时要使用老版本的 Git,
    为保持兼容,请用 'current' 代替 'simple' 模式)
    
    Counting objects: 5, done.
    Compressing objects: 100% (2/2), done.
    Writing objects: 100% (3/3), 295 bytes | 0 bytes/s, done.
    Total 3 (delta 0), reused 0 (delta 0)
    To git@192.168.133.88:/data/gitroot/sample.git
       6c56668..6f7c268  master -> master
    [root@centos-01 sample]# cd /root/sample/
    [root@centos-01 sample]# ls
    222.txt  mysqld
    [root@centos-01 sample]# git pull
    remote: Counting objects: 5, done.
    remote: Compressing objects: 100% (2/2), done.
    remote: Total 3 (delta 0), reused 0 (delta 0)
    Unpacking objects: 100% (3/3), done.
    来自 192.168.133.88:/data/gitroot/sample
       6c56668..6f7c268  master     -> origin/master
    更新 6c56668..6f7c268
    Fast-forward
     222.txt | 1 +
     1 file changed, 1 insertion(+)
    [root@centos-01 sample]# cat 222.txt 
    lafldkflksdf
    alfdldsflsdlf
    [root@centos-01 sample]# 
    

    安装gitlab

    1.安装gitlab(失败,还是用官方的安装吧)

    [root@centos-01 sample]# vim /etc/yum.repos.d/gitlab.repo
    [root@centos-01 sample]# cat /etc/yum.repos.d/gitlab.repo 
    [gitlab-ce]
    name=gitlab-ce
    baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
    Repo_gpgcheck=0
    Enabled=1
    Gpgkey=https://packages.gitlab.com/gpg.key
    [root@centos-01 sample]# yum install -y gitlab-ce
    
    gitlab-ce-10.7.3-ce.0.el7.x86_64.rpm 的公钥尚未安装
    
    
     失败的软件包是:gitlab-ce-10.7.3-ce.0.el7.x86_64
     GPG  密钥配置为:https://packages.gitlab.com/gpg.key
    
    [root@centos-01 sample]# 
    

    2.官方安装

    [root@centos-01 ~]# sudo yum install -y curl policycoreutils-python openssh-server openssh-clients  (安装和配置必要的依赖关系)
    [root@centos-01 ~]# sudo systemctl enable sshd
    [root@centos-01 ~]# sudo systemctl start sshd
    [root@centos-01 ~]# sudo firewall-cmd --permanent --add-service=http
    FirewallD is not running
    [root@centos-01 ~]# sudo systemctl reload firewalld
    Job for firewalld.service invalid.
    [root@centos-01 ~]# sudo yum install postfix
    已加载插件:fastestmirror, langpacks
    https://repo.mongodb.org/yum/redhat/7/mongodb-org/3.6/x86_64/repodata/repomd.xml: [Errno 14] curl#35 - "TCP connection reset by peer"
    正在尝试其它镜像。
    Loading mirror speeds from cached hostfile
     * base: mirrors.tuna.tsinghua.edu.cn
     * epel: mirror.dmmlabs.jp
     * extras: mirrors.tuna.tsinghua.edu.cn
     * updates: mirrors.njupt.edu.cn
    软件包 2:postfix-2.10.1-6.el7.x86_64 已安装并且是最新版本
    无须任何处理
    [root@centos-01 ~]# sudo systemctl enable postfix
    [root@centos-01 ~]# sudo systemctl start postfix
    [root@centos-01 ~]# 
    

    3.生成gitlab包仓库

    [root@centos-01 ~]# curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
    

    4.安装gitlab-ce并指定访问的ip为192.168.133.44(可以指定其他域名)

    [root@centos-01 ~]# sudo EXTERNAL_URL="192.168.133.44" yum install -y gitlab-ce
    

    5.配置配置文件  

    [root@centos-01 ~]# gitlab-ctl reconfigure
    

    6.配置文件目录(目的是配置gitlab相关的服务启动)

    [root@centos-01 ~]# cat /etc/gitlab/gitlab.rb |grep external_url
    ##! For more details on configuring external_url see:
    external_url 'http://192.168.133.44'
    # registry_external_url 'https://registry.gitlab.example.com'
    # pages_external_url "http://pages.example.com/"
    # gitlab_pages['artifacts_server_url'] = nil # Defaults to external_url + '/api/v4'
    # mattermost_external_url 'http://mattermost.example.com'
    [root@centos-01 ~]# 
    

     

    [root@centos-01 ~]# ps aux|grep gitlab
    [root@centos-01 ~]# netstat -lntp
    

      

    [root@centos-01 ~]# 
    [root@centos-01 ~]# /etc/init.d/nginx stop (关闭之前的nginx)
    [root@centos-01 ~]# chkconfig nginx off
    

      

     

    1.停止服务

    [root@centos-01 ~]# gitlab-ctl stop
    

    2.启动服务

    [root@centos-01 ~]# gitlab-ctl start
    

    3.ip进行访问

    使用gitlab

    1.配置gitlab域名访问,配置文件如下,修改server_name就行。

    [root@centos-01 ~]# cat /var/opt/gitlab/nginx/conf/gitlab-http.conf |grep server
      server unix:/var/opt/gitlab/gitlab-workhorse/socket;
    server {
      server_name 192.168.133.44;
      server_tokens off; ## Don't show the nginx version number, a security best practice
    [root@centos-01 ~]#  

    2.在gitlab上新建项目,首先建立一个group

    3.创建项目

    4.创建完项目后会有一个提醒,意思是还没有建立ssh key,这个key和我们之前做的gitlab一样需要添加key,然后就可以通信了。

    5.点setting添加key

    6.添加新用户

    gitlab备份和恢复

    1.执行命令

    2.备份文件所在目录

    3.恢复gitlab

  • 相关阅读:
    【Codecs系列】之NVIDIA Jetson TX1简介
    【Life系列】之工作与生活的关系《赢在下班后》
    【Bugs系列】之could not find or load the Qt platform plugin windows解决方案
    【Books系列】之第一本书:大冰《好吗好的》读书笔记和读后感
    【Qt系列】之Qt之打包发布
    【Life系列】之我在底层的生活
    【Life系列】之关于工作和生活的思考与反思
    【Tools系列】之WORD转成PDF并生成书签
    【Tools系列】之Excel冻结窗格
    【Script系列】之CMake学习总结
  • 原文地址:https://www.cnblogs.com/sunyujun/p/8901947.html
Copyright © 2011-2022 走看看