学习笔记(2):18年新Jenkins持续集成 Git Gitlab Sonar视频教程-敏捷持续集成简介

立即学习:https://edu.csdn.net/course/play/9305/195170?utm_source=blogtoedu

-----1.什么是分支
  软件项目中启动一套单独的开发线的方法
2.为什么使用git
  1.可以很好的避免版本兼容开发的问题,避免不同版本之间的相互影响。
  2.封闭一个开发阶段
  3.解决bug的时候新建分支,用于对该bug的研究
3.git中跟分支相关的命令
  git branch 分支名
  git branch 不加任何参数,列出所有的分支,分支前面的*号,代表该分支为当前所在分支
  * 创建分支的时候,分支名不要使用特殊符号
  git branch -d 分支名
  * 不能删除当前所在的分支
  git branch -m 旧分支名 新分支名

  git checkout 分支名 切换分支
  *如果在分支上面对文件进行修改之后,没有commit后就切换到另外一个分支B,这个时候会报错,因为没有commit的文件在切换分支之后会被覆盖,所以git分报错提示
  git checkout -f 分支名 强制切换到分支,如果当前没有提交变更,会直接丢弃。
  * -f 参数一定定要非常非常小心使用,一般情况下不建议使用,除非真的要强制去执行。

----- 追根溯源--git log
 log命令的使用
  用于查看git的提交历史
 git log命令显示的信息的具体含义
  commit: d9sa8f7asf8s9f08a9s786asgasf98s8df9a0sf8sa --
  Author: wiggin([email protected]> -- 作者跟邮箱概要信息
  Date: wed may 时间
  v2 -- commit的时候,使用 -m选项说写一段概要说明
  日常 在使用commit的时候, -m 选项所写的内容不定不能随便写
 git log -数字  表示查看最近几次的提交
 git log -p -数字 显示最近2次提交的不同点
 git log --author  查看具体某个作者的提交
 git log -- oneline 输出简要的信息
 git log --graph 以一个简单的线串联起整个提交历史
 git log 输出信息的定制

----- 文件对比利器 -- git diff
diff --> difference的缩与,用于比较差异
使用场景:
    1.解决冲突
    2.制作补丁
git diff 不加任何参数用于比较当前工作区跟暂存区的差异
git diff --cached 或者 -- staged
git diff HEAD 
git diff 分支名 查看当前分支跟指定的分支的差异
git diff 分支名1 分支名2 查看两个指定分支的差异
git diff 文件名 查看指定文件的差异
git diff commitid1 commitie2 用于列出两个历史提交的差异
git diff 分支名 --stat 列出哪出文件有差异变更 

----- git更改提交
1。将不必要的文件add
2. 上次提交觉得是错的
3. 不想改变暂存区内容,只是想调整提交的信息
4. 版本回滚
 git reset HEAD 文件名  移除不必要的添加到暂存区的文件
 git reset HEAD^ 或者 commitid 去掉上一次的提交
 git reset --soft HEAD^ 修改上次提交的信息,即commit -m "修改这里的内容"
 git reset --soft   只是将HEAD引用指向指定的提交,工作区跟暂存区的内容不会改变
 git reset --mixed  (默认选项)将HEAD指向指定的提交,暂存区的内容随之改变,工作区内容不变
 git reset --hard   将HEAD指向指定的提交,暂存区跟工作区都会改变

 ----- 落叶归根 --分支合并及冲突解决
 分支的合并
 git merge 分支名 
     表示: 拿指定的分支名与当前分支进行合并
 git diff --name-only --diff-filter-U  用于查看产生冲突的文件 


----- git的标签
git tag 不加任何参数,表示显示标签(以字母序),非按时间
git tag 标签名 默认是给最近的一次提交打上标签
git tag 标签名 commitid
git show 标签名 显示该标签相关的那次提交的相关信息
git tag -d 标签名 删除该标签
git push 远程分支名  标签名  把某个标签(必须是本地已存在原,否失败)推送到远程服务器上
删除远程标签的步骤
1.删除本地的标签 git tag -d 标签名
2.删除远程的标签 git push orgin :refs/tags/标签名


------ gitignore文件
为什么要使用.gitignore文件
大量与项目无关的文件全推到远程仓库上,同步的时候会非常慢,且跟编辑器相关的一些配置推上去之后,别人更新也会受其影响。所以,我们使用相关文件,对不必要的文件进行忽略,使其不被git追踪
一把情况下, .gitignore文件,在项目一开始创建的时候就创建,并推送到远程服务器上,这样子初次同步项目的时候,就是用到该文件,避免以后,团队成员把与项目无关的文件,传到远程服务器上。

*.log 表示忽略项目中所有以.log结尾的
123?.log 表示忽略项目中所有的以123加任意字符的文件
/error.log 表示忽略项目中根目录中的error.log 这个文件
src/main/test/* 表示忽略/src/main/test/目录下的所有文件
*.class 
**/java 匹配所有的java目录下的所有文件

!/error.log 表示在之前的匹配规则下,被命中的文件,可以使用!对前面的规则进行忽略

已推送怎么办?
对于已经提交到远程或本地仓库的文件。.gitignore配置之后不会生效。我们必须先删除本地暂存区里的文件,之后在加上。gitgnore文件,最后再把变更提交到远程仓库上。
git rm --cached 文件名 从暂存区删除某个文件
git rm -rf --cache 文件夹, 表示递归删除暂存区该文件夹的所有东西


----- gitlab简介
1. gitlab是什么
  是一个用于仓库管理系统的开源项目,使用git作为代码管理工具,并在此基础上搭建起来的Web服务。
  基础功能免费,高级功能收费
2. 为什么使用Gitlab
  1.基础功能开源,可自行搭建。
  2.可心进行权限控制,使得代码对部分人可见。

----- gitlab的安装

1.linux必要配置
    在防火墙里开放http跟ssh端口
        yum install lokkit
        yum install curl openssh-server openssh-clients postfix cronie -y 
        service postfix start
        chkconfig postfix on 
        lokkit -s http -s ssh
    添加gitlab仓库并安装
        curl -sS http://packages.gitlab.cc/install/gitlab-ce/script.rpm.sh | sudo bash
        sudo yum install gitlab-ce
    启动gitlab
        gitlab-ctl reconfigure
        vim /ect/gitlab/gitlab.rb
        修改external_url
        gitlab-ctl reconfigure
        gitlab-ctl restart
    配置防火墙
        vim /etc/sysconfig/iptables
        -A INPUT -m state --state NEW -m tcp -p tcp --dport 8888 -j ACCEPT


----- gitlab邮箱服务
配置邮箱服务的用途
1.有合并请求时,邮件通知
2.账号注册时,邮件验证
3.修改密码时,通过邮件修改
配置步骤
1.开启QQ邮箱的smtp服务(不建议163邮箱,发几次之后就不能发送)
设置--》帐户--》smtp-->密保验证--》验证成功返回一串字符串,形妆如(asdfsadfasfdsdfasdfaf)
保存返回的字符串
2.修改gitlab配置
vim /etc/gitlab/gitlab.rb
gitlab-ctl reconfigure
3.测试邮件服务是否正常
gitlab-rails console
Notify.text_email('接收方邮件地址','邮件标题','邮件内容').deliver_now


----- gitlab组配置
1.开启注册邮箱验证
 admin area -->setting--> Sign-up restrictions-->勾选Send confirmation email on sign-up
2.当前用户
 root 123 wiggin
3. 创建组
  首页-->create a group(http://192.168.56.101:8888/dashboard/groups)
  访问级别
  private:只有组成员才能看到
  Internal: 只要登录的用户就能看到
  Public: 所有人都能看到
 Guest:可以创建issue 发表评论 不能读写版本库
 Reporter: 可以克隆代码,不能提交
 Developer: 可以克隆代码、开发、提交、push
 Master: 可以创建项目、添加tag 、保护分支、添加项目成员、编辑项目
 Owner:可以设置项目访问权限  -Visibility Level 删除项目 迁移项目 管理组成员

 ssh -- https访问
 1.键入命令:ssh-keygen -t rsa
 2.提醒你输入key的名称,输入如id_rsa
 3.在C:\Users\Adminsitrator\.ssh下产生两个文件:id_rsa和id_rsa.pub
 4.用词本打开id_rsa.put文件,复制内容,在gitlab.com的网站上到ssh密钥管理页面,添加新公钥、随便取个名字,内容粘贴刚才复制的内容。

 ----- gitlab分支及标签保护
 为什么要保护分支
     保护特定的分支不用随便合并,以免影响其他分支
     

你可能感兴趣的:(研发管理,git,gitlab,Sonar,Jenkins持续集,Linux)