• gitlab后期使用


    一 怎么把本地代码上传到gitlab上面

    1 首先,登录自己的账户,去gitlab上面创建一个项目,会生成

    http://192.168.7.18/huningfei/auto.git

    2 安装git客户端

    然后在你自己的电脑上面安装git客户端,然后进入到相应的目录下,安装shieft并右键打开git bash here

    3 提交代码(三种情况)

    1 新项目,直接克隆
    
    git clone http://192.168.7.18/huningfei/auto.git
    cd auto
    touch README.md
    git add README.md
    git commit -m "add README"
    git push -u origin master
    
    2 本地已存在的项目,但从来没提交过的
    cd existing_folder
    git init
    git remote add origin http://192.168.7.18/huningfei/auto.git
    git add .
    git commit -m "Initial commit"
    git push -u origin master
    
    3 已存在的项目,已经多次提交过的
    已存在的 Git 版本库  这个是已经存在的项目,去提交
    
    cd existing_repo
    git remote rename origin old-origin
    git remote add origin http://192.168.7.18/huningfei/auto.git
    git push -u origin --all
    git push -u origin --tags
    
    

    大致流程介绍:

    1  确保有git仓库
    2 git status  查看文件状态,看那些是修改的文件(红色显示的)
    3 git add . 就是把更改的文件添加到本地git缓存区
    4 git commit -m "修复XXbug"   推送修改到本地git库中
    5 git push <远程主机名> <远程分支名>  把当前提交到git本地仓库的代码推送到远程主机的某个远程分之上
     git push origin master   你第一次从远端克隆仓库的时候,默认的名字就叫origin, master是分支的名字
    
    

    上面这些步骤当你在提交代码的时候,每次都需要输入用户名和密码,这样显得比较麻烦,如何不用输入密码。

    4 免密码提交

    这里我以windows客户端为例,我在windows上面生成一个密钥
    ssh-keygen -t rsa -C "huningfei@p2peye.com"
    如图所示:

    然后会在你用户的家目录下面生成一个.ssh文件夹,其中打开中间.pub结尾的文件,里面是公钥,然后复制到gitlab上面

    gitlab粘贴公钥的地方:

    二 拉取代码如何免密码

    说明:这个根据自身情况而定,我目前是用过这两个方法

    1 第一种方式:

    进入到用户的家目录下面,然后执行

    git config --global user.name "huningfei"
     git config --global user.email "huningfei@p2peye.com"
     git config --global credential.helper store
    
     然后会出现一个..gitconfig的隐藏文件,如下所示
    yx@es-1:~$ cat .gitconfig 
    [user]
    	name = huningfei
    	email = huningfei@p2peye.com
    [credential]
    	helper = store
    
    

    之后cd到项目目录,执行git pull命令,会提示输入账号密码。输完这一次以后就不再需要,并且会在用户家目录生成一个.git-credentials文件

    
    yx@es-1:~$ cat .git-credentials 
    http://huningfei:Huningfei2018@192.168.7.18
    # 里面包含了用户名和密码,还有服务器的ip地址
    

    2 第二种方式

    进入项目目录,然后执行git config --global credential.helper store
    然后git pull,输入一次密码,以后就不需要在输入了

    三 gitlab提示Forbidden

    背景:我迁移了gitlab之后,随后多个开发大量的访问,(都是来自同一个ip),然后gitlab打开页面的时候显示的是空白页面,提示Forbidden
    在网上查询了原因大部分都是说: Gitlab使用rack_attack做了并发访问的限制。gitlab的rack-attack机制是为了限制某个ip对gitlab进行基本认证失败请求的次数,杜绝恶意的攻击和密码破解等行为,通过限制每个ip每分钟内尝试的基本认证的次数来实现,如果某个ip进行的基本认证失败请求的次数超过这个限制,则这个ip的其他的所有的请求都会返回403.

    1 403如何解决

    于是我更改了配置文件,如下

    
    打开 /etc/gitlab/gitlab.rb 取消gitlab_rails['rack_attack_git_basic_auth']有关的注释
    
    gitlab_rails['rack_attack_git_basic_auth'] = {
       'enabled' => true,
       'ip_whitelist' => ["127.0.0.1","Gitlab部署的IP地址"],
       'maxretry' => 100,
       'findtime' => 60,
       'bantime' => 60
     }
    
    gitlab-ctl reconfigure
    # 配置好后,载入配置
    

    重新加载之后,好像是稍微好了一点,但是过一段时间还是出现403.但是过了一两天,就慢慢的好起来了,我怀疑还是短时间内,同一个ip大量的访问造成的。(这个问题一直还有些疑惑)

    2 如何查看被禁ip

    查看被禁ip

    /opt/gitlab/embedded/bin/redis-cli -s /var/opt/gitlab/redis/redis.socket keys '*' | grep 'rack::attack'
    
    

    删除被禁ip

    /opt/gitlab/embedded/bin/redis-cli -s /var/opt/gitlab/redis/redis.socket keys '*' | grep 'rack::attack' | xargs /opt/gitlab/embedded
    #出现下面提示,删除成功
    /bin/redis-cli -s /var/opt/gitlab/redis/redis.socket DEL
    
    

    四 gitlab设置分支保护

    设置分支保护,防止其他人随意push。
    详情见 https://www.cnblogs.com/xiuxingzhe/p/11196188.html

  • 相关阅读:
    Java单例模式:为什么我强烈推荐你用枚举来实现单例模式
    为什么阿里Java规约要求谨慎修改serialVersionUID字段
    使用MyCat实现MySQL读写分离
    你知道HTTP协议的ETag是干什么的吗?
    在centos7中安装MySQL5.7
    MySQL实现主从复制功能
    Leetcode题目169.求众数(简单)
    Leetcode题目160.相交链表(简单)
    Leetcode题目155.最小栈(简单)
    Leetcode题目152.乘积最大子序列(动态规划-中等)
  • 原文地址:https://www.cnblogs.com/huningfei/p/12786991.html
Copyright © 2020-2023  润新知