• Git


    一、介绍

    代码上线流程图

     运维工程师三大核心职能

     

    1、 Git安装

    # yum install git                                   #安装Git 
    # git help #获取帮助
    # git help config                      # git config
    --global #全局配置文件 --system #系统配置文件 --local #本地配置文件 # git config --global user.name "tom" #配置git使用用户 # git config --global user.email "123@qq.com" #配置git使用邮箱 # git config --global color.ui true #语法高亮 # git config --list #查看配置列表 # cat ~/.gitconfig #查看配置文件

    2、Git初始化

    # mkdir git_data 
    # cd git_data/ 
    # git init 
    # git status                        #查看工作区状态
    #隐藏文件介绍: branches #分支目录 config #项目配置选项 description #仅供git web程序使用 HEAD #指针指向当前的分支 hooks #包含git钩子文件 info #包含全局排除文件(exclude文件) objects #存放所有数据内容,有info和pack两个文件夹 refs #存放指向数据(分支)的提交对象的指针 index #保存暂存区信息

    3、Git常规使用

    创建数据-提交数据

      Git四种状态

     Git基础命令

     Git操作

    添加
    # git add a                         #添加文件到暂存区
    # git add .或*                      #添加所有改动过的文件到暂存区
    # git commit -m 'add a'             #提交暂存区所有文件到本地仓库
    # git commit -a -m "add a"          #提交暂存区所有修改文件到本地仓库
    删除
    # git rm --cached a                 #删除暂存区文件
    # git rm -f a                       #删除暂存区和工作目录的文件
    修改
    # git mv a a.txt                    #git重命名
    # git commit -m "rename a.txt a"    #重命名要提交到本地仓库
    --------------------------------------------------------------  
    # git status                        #查看工作目录和缓存区域的信息
    工作目录  
    (升)git add <file>                 #工作目录的文件提交到暂存区域 
          git add .或*                  #工作目录所有的文件提交到暂存区域
    (降)git checkout <file>            #从暂存区域撤回到工作目录
    
    暂存区域  
    (升)git commit -m "备注"            #暂存区域的文件提交到本地(远程)仓库,不加-m,需要手动添加  
    (降)git reset HEAD <file>           #从暂存区域撤回到工作目录(在commit之前) 
    
    本地仓库
     # git log                             #git提交文件的日志说明(哈希值、用户、邮箱、日期、备注说明等)  
     # git log --oneline                   #显示一行文件的信息(7位元哈希值、备注信息)  
     # git log --oneline --decorate        #查看当前HEAD的指针指向  
     # git log -p                          #显示具体文件变化
     # git log -1                          #只显示一条内容    
     # git log --pretty=fomat:"%h %cn"     #--pretty根据不同的格式显示

    对比
    # git diff a                        #对比工作目录和暂存区文件内容
    # git diff                          #对比工作目录和暂存区文件内容
    # git diff --cached a               #对比暂存区和本地仓库文件内容
    # git diff --cached                 #对比暂存区和本地仓库文件内容
    
    还原
    # git reset --hard HEAD^            #还原历史版本上一次
    # git reset --hard 3de15d4          #还原到历史的哈希值
    # git reflog                        #查看历史内容

     4、Git分支

    # git log --oneline --decorate      #查看分支指向的
    # git branch                        #查看所在的分支
    # git branch test                   #创建test分支
    # git checkout test                 #切换到test分支
    # git checkout -b test              #创建并切换分支
    # git branch -d test                #删除test分支
    # git merge test                    #合并分支(切换到master,才能合并)
    # touch aaa bbb ccc ddd
    # git add aaa
    # git commit -m 'add aaa'
    # git add ddd
    # git commit -m 'add ddd'
    # git branch testing 

    # git checkout testing
    # git branch

    # touch test
    # git add .
    # git commit -m 'touch test'
    # git log --oneline --decorate 

    # git checkout master 

    # touch master
    # git add .
    # git commit -m "touch master"
    # git log --oneline --decorate

    # git merge testing                   #合并分支
    # git log --oneline --decorate

     合并分支冲突解决

    # git checkout master
    # echo "master" >> aaa
    # git commit -am "modified aaa master"
    
    # git checkout testing
    # echo "testing" >> aaa
    # git commit -am "modified aaa testing"
    
    # git checkout master
    # git merge testing                             #合并有冲突,只能手动修改
    # vim  aaa
    # git commit -am "merge testing "               #提交

    删除分支

    # git branch                                    #查看分支机构
    # git branch --no-merged                        #查看未合并的分支
    # git branch -d testing                         #删除分支
    # git branch -D testing                         #强制删除分支

    5、Git标签使用

    方便回滚,每次提交打个tag
    # git tag -a v1.0 -m "v1.0"             #-a标签名字,-m说明
    # git tag -a v2.0 0924a70 -m "v2.0"     #某一次打标签
    # git tag                               #查看所有的标签
    # git show v1.0                         #查看版本的详细信息
    # git reset --hard v2.0                 #回滚v2.0版本
    # git tag -d v2.0                       #删除标签

     6、Github使用

     创建新的仓库

     

    用HTTPS推送

    # git remote add origin https://github.com:wuhgzhzx/git_data.git        #创建远程仓库
    # git push -u origin master                                             #推送本地master到远程仓库
    Username for 'https://github.com': #用户
    Password for 'https://wuhgzhzx@github.com': #密码

    ssh推送

    # git remote add origin git@github.com:wuhgzhzx/git_data.git           #添加远程仓库,名称为origin
    # git remote                                                           #查看远程仓库
    # ssh-keygen -t rsa #生成秘钥对
    # cat ~/.ssh/id_rsa.pub #复制公钥 # git push
    -u origin master #将代码推送到远程仓库

     

     

    # git clone https://github.com/wuhgzhzx/git_data.git                #克隆远程仓库到本地
    # git clone git@github.com:wuhgzhzx/git_data.git                    #克隆远程仓库到本地

     二、 Gitlab

     1、安装

    官网:https://about.gitlab.com/
    国内镜像:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/
    实验:2G内存
    生产:至少4G内存
    安装文档:https://about.gitlab.com/installation/ 

     

     

    # yum install -y curl policycoreutils-python openssh-server     #安装依赖
    # wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm
    # yum install gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm

    2、配置及结构介绍

    # vim /etc/gitlab/gitlab.rb                #配置文件  修改IP或域名
    external_url
    'http://192.168.4.11'
    # gitlab-ctl reconfigure #重置配置文件
    Gitlab的服务构成:
    nginx:                                           #静态web服务器
    gitlab-workhorse:                                 #轻量级的反向代理
    logrotate:                                       #日志管理工具
    postgresql:                                      #数据库
    redis:                                           #缓存数据库
    sidekiq:                                         #消息队列(异步执行)
    
    /etc/gitlab/                                      #配置文件 
    /var/log/gitlab/                                  #各个组件的日志目录
    /opt/gitlab/                                      #程序安装目录
    /var/opt/gitlab                                   #数据目录
    /var/opt/gitlab/git-dfata                         #存放仓库数据
    /var/opt/gitlab/backups/                          #备份文件生成的目录
    /var/opt/gitlab/git-data/repositories             #库默认存储目录
    
    # gitlab-ctl status                               #查看所有的服务状态
    # gitlab-ctl stop                                 #停止所有的服务
    # gitlab-ctl stop nginx                           #单独停止某个服务
    # gitlab-ctl tail                                 #查看所有服务的日志
    # gitlab-ctl show-config                          #验证配置文件
    # gitlab-ctl reconfigure                          #重置配置文件

    3、Gitlab使用

    浏览器输入主机IP访问,第一次登录修改密码

     外观配置

     

     

     Gitlab汉化配置

    1、下载汉化补丁
    # git clone https://gitlab.com/xhang/gitlab.git
    
    2、查看全部分支版本 # git branch -a
    3、对比版本、生成补丁包 # git diff remotes/origin/10-2-stable remotes/origin/10-2-stable-zh > ../10.2.2-zh.diff
    4、停止服务器 # gitlab-ctl stop
    5、打补丁 # patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < /tmp/10.2.2-zh.diff
    6、启动和重新配置 # gitlab-ctl start # gitlab-ctl reconfigure

    关闭自动注册

     

     先创建一个组

     

     

     创建项目

     

     

     

    配置公钥,推送代码到gitlab

    推送代码
    # git remote #查看远程仓库 # git remote remove origin #删除github的仓库 # git remote add origin git@
    192.168.4.11:test/git_data.git # git push -u origin master

     创建开发用户

     

     

     

     

     

     

     

     开发dev用户下载代码

     

    # git clone git@192.168.4.11:test/git_data.git             #克隆代码到本地
    # cd git_test 
    # echo dev >dev.txt
    # git commit -am "add dev.txt"
    # git push -u origin master                                #推送代码到远程仓库

    分支保护(不允许开发直接合并到生产分支)

    创建一个dev分支
    # git branch dev
    # git push -u origin dev

    # 登录root用户,进行分支保护

     

    代码合并

    1、清除旧分支,创建新分支,并切换
    # git branch -d dev                  
    # git checkout -b dev
    # git branch                          #检查所在的分支
    
    2、推送代码到远程仓库
    # git pull                            #先下载最新的代码
    # git push -u origin dev              #保障代码的一致性
    # echo test >dev.txt                  #增加新的文件
    # git push -u origin dev              #上传新的文件到分支

    拉去master代码,创建新的分支,添加新的功能,合并分支(不能直接合并,要先上传到dev分支,由dev用户发起合并请求)

     

     

     

    处理请求(开发经理审核代码,登录有合并权限的用户,合并请求操作,根据实际情况是否删除源分支)

     

     

     Git-gui安装

     

     

     

     

     

    创建秘钥对,并把公钥复制到gitlab,创建用户、组,管理的仓库

     

     

     

     

     

     修改代码

     

     

     Gitlab备份与恢复

    1、备份(GitLab备份与恢复,版本号要一致)

    1、设置开启备份以及备份路径
    # vim /etc/gitlab/gitlab.rb
    gitlab_rails['manage_backup_path'] = true                       #开启备份
    gitlab_rails['backup_path'] = "/data/gitlab/backups"            #设置备份路径
    gitlab_rails['backup_archive_permissions'] = 0644               #备份文件的权限
    gitlab_rails['backup_keep_time'] = 604800                       #备份保留天数,单位是秒
    
    2、创建备份路径并且设置权限
    # mkdir -p /data/gitlab/backups
    # chown -R git.git /data/gitlab/backups
    
    3、重启加载配置文件
    # gitlab-ctl reconfigure

    手动备份

    # gitlab-rake gitlab:backup:create

     

     定时备份

    # vim  gitlab_backup.sh
    #!/bin/bash
    /usr/bin/gitlab-rake gitlab:backup:create CRON=1            #CRON=1:若没有任何错误时,不输出所有备份进度

    2、恢复(先清空当前所有的数据,再根据备份数据进行恢复)

    1、停止数据库连接
    # gitlab-ctl stop unicorn
    # gitlab-ctl stop sidekiq
    
    2、确认状态
    # gitlab-ctl status
    
    3、恢复
    # gitlab-rake gitlab:backup:restore backup=1525801521_gitlab_backup.tar
    
    4、启动服务
    # gitlab-ctl start

    5、检查是否恢复成功
    # gitlab-rake gitlab:check SANITIZE=true

                    

                        

         

      

  • 相关阅读:
    「SPOJ10707」Count on a tree II
    UVA 11021 /概率
    power oj/2360/Change
    POJ1613 147/思维题
    Power oj2498/DP/递推
    HDU4815/计数DP
    444A/CF
    观光公交noip<贪心>
    2014 Shanghai Invitation Contest
    POJ1734/Floyd求最小环
  • 原文地址:https://www.cnblogs.com/wuhg/p/13475763.html
Copyright © 2020-2023  润新知