git的使用

Gitlab的安装
安装本身并不复杂,但是gitlab对内存的要求比较高,建议4g以上,vm的内存上限为3g,也可以使用
下载地址
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
安装命令
rpm -i gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm
修改端口
https://blog.csdn.net/qq_38270106/article/details/100080665
发现修改了两个端口 nginx和unicorn
简单的理解nginx是前端,就是访问gitlab的端口, unicorn作为后端的容器
Gitlab使用
创建用户

  1. 创建用户


    image.png
  2. 为用户赋予权限,创建用户后会发送邮件,点开链接可以重新设置密码,管理用户也可以在
    用户修改地方设置密码,普通用户可以创建group和project


    image.png

    创建用户组
    1.创建GROUP,添加用户


    image.png

    image.png

    image.png

    每个角色意义

    Guest:可以创建issue、发表评论,不能读写版本库
    Reporter:可以克隆代码,不能提交,QA、PM可以赋予这个权限
    Developer:可以克隆代码、开发、提交、push,普通开发可以赋予这个权限
    Maintainer:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心开发可以赋予这个权限
    Owner:可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员,开发组组长可以赋予这个权限

Group的设置,group添加用户之后,共享Group下的所有项目


image.png

image.png

创建项目


image.png

组和项目的删除
组删除
image.png

项目删除


image.png

image.png

Gitlab整合idea
  1. 整合idea首先要做的就是gitlab要忽略的文件


    image.png
  2. 如果无意间add文件的话
    Revert方式


    image.png

    Reset方式


    image.png

    这里要选择mixed方式,可以取消add还有sort和hard方式后续讲到,hard方式慎用
    Reset方式不会单独选择某个文件,会整体的撤销
    使用命令取消add

    这里要取消test1文件的add,要注意目录层级
    git rm --cache test1 注意目录层级

  3. 如果无意间commit文件了,该如何取消

    image.png

    如何撤销commit
    这里需要使用的reset
    image.png

    针对reset有三种状态
    mixed
    意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
    这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。
    --soft
    不删除工作空间改动代码,撤销commit,不撤销git add .
    hard
    删除工作空间改动代码,撤销commit,撤销git add .
    注意完成这个操作后,就恢复到了上一次的commit状态。
    两次commit,取消最近一次的commit
    image.png

    因为选择的是mixed,如果是hard的话,这里的内容就是测试1了,而且不会弹出合并页面,暴力回退,也就是选择hard之后你编写的代码,如果还没有push到远程仓库的时候,新改的代码就没有了,所以要谨慎使用.
    image.png

    这就是取消commit的操作,在实际操作的时候也不需要取消commit,因为如果多次commit的话,真正push到远程仓库的时候,是最新的代码.

  4. 多次commit,是以最后一次修改为主,如果一个文件多次commit,最终push到远程仓库的代码是以最后一次为主,所以3中提到取消commit其实使用的并不多


    image.png
  5. 如果误操作,删除了文件或者提交了很多没有用的文件

那如何把误提交的文件从gitlab上删除呢,或者误删除的文件找回来
两种办法:

  1. 先将本地的文件备份一下,并删除掉从新commit+push即可,这种是比较简单的方式,
    如果是不小心删除了本地文件,并push到gitlab上,把文件在本地找到,并commit+push即可
  2. 另一种使用reset的方式,这种方式比较复杂


    image.png

    image.png

    这一次提交,修改test1文件和添加了test2文件,突然发现test2文件不应该被提交,利用reset方式删除test2文件


    image.png

    操作reset
    image.png

    只能选择hard模式,soft和mixed不会把test2文件删除掉

    但是这里要注意 test1 会从测试8改为测试7,这里有一个问题就是当reset的版本低于远程的mater分支版本的时候,push不上去,这里可以使用
    git push master -force origin master 强制push

  3. 创建分支
    创建本地分支


    image.png

    当push的时候会把本地分支上传到gitlab
    当分支切换的时候,会把当先分支的文件同步到切换的分支上,包含add 但是没有commit等信息,
    如果删除了远程分支的时候,如何找回分支


    image.png

    上面的操作会删除远程分支
    image.png

    image.png

    image.png

    image.png

    重新创建好的分支
    2.分支切换


    image.png

    分支的切换有个问题就是当前分支的修改但是没有commit的代码会自动同步到新分支上,已经commit的内容不会自动同步,需要手都同步.
    image.png

    image.png

    这个时候切换master分支上
    image.png

    如果dev分支修改了文件,因为没有修改完不想commit,此时需要切换分支,不想把已经修改但是没有commit的代码同步到master分支上,我们就可以使用stash命令
    image.png

    image.png

    image.png

    dev创建stash之后,恢复到commit状态,这样就可以切换master分支了,
    当切换回来到dev时,可以使用unstash,将暂存释放出来
    image.png

    image.png
  4. 分支的合并
    分支的合并分两种一种是cherr-pick一种是merge into current


    image.png

    image.png

    Cherry pick和merge into current 区别 Cherry pick可以单独的合并某一个commit, merge into current是两个分支整体合并

你可能感兴趣的:(git的使用)