• gitlab常用命令


    1.运维管理

    查看版本

    cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
    

    实时查看日志

     gitlab-ctl tail
    

    数据库关系升级

     gitlab-rake db:migrate
    

    清理redis缓存

    gitlab-rake cache:clear
    

    升级GitLab-ce 版本

    yum update gitlab-ce
    

    升级PostgreSQL最新版本

     gitlab-ctl pg-upgrade
    

    2.服务控制命令

    启动/停止/重启所有 gitlab 组件:

    gitlab-ctl start/stop/restart
    

    启动指定模块组件:

     gitlab-ctl start redis/postgresql/gitlab-workhorse/logrotate/nginx/sidekiq/unicorn
    
    

    停止指定模块组件:

    gitlab-ctl stop 模块名
    

    查看服务状态

    gitlab-ctl status
    

    生成配置并启动服务

     gitlab-ctl reconfigure
    

    3.日志相关

    实时查看所有日志

     gitlab-ctl tail
    

    实时各个模块日志

    gitlab-ctl tail redis/postgresql/gitlab-workhorse/logrotate/nginx/sidekiq/unicorn

    Gitlab服务构成

    GitLab由主要由以下服务构成,他们共同承担了Gitlab的运作需要

    nginx: 静态web服务器
    gitlab-shell: 用于处理Git命令和修改authorized keys列表
    gitlab-workhorse: 轻量级的反向代理服务器
    logrotate:日志文件管理工具
    postgresql:数据库
    redis:缓存数据库
    sidekiq:用于在后台执行队列任务(异步执行)
    unicorn:HTTP服务,GitLab Rails应用是托管在这个服务器上面的。

    主要配置文件目录

    主配置文件: /etc/gitlab/gitlab.rb
    文档根目录: /opt/gitlab
    默认存储库位置: /var/opt/gitlab/git-data/repositories
    Nginx配置文件: /var/opt/gitlab/nginx/conf/gitlab-http.conf
    Postgresql数据目录: /var/opt/gitlab/postgresql/data

     
    重设管理员或指定用户密码
    [root@test bin]# gitlab-rails console production
    -------------------------------------------------------------------------------------
     GitLab:       11.10.4 (62c464651d2)
     GitLab Shell: 9.0.0
     PostgreSQL:   9.6.11
    -------------------------------------------------------------------------------------
    Loading production environment (Rails 5.0.7.2)
    irb(main):001:0> user = User.where(id:1).first
    => #<User id:1 @root>
    irb(main):002:0> user.password = 'qwer1234'
    => "qwer1234"
    irb(main):003:0> user.password_confirmation = 'qwer1234'
    => "qwer1234"
    irb(main):004:0> user.save
    Enqueued ActionMailer::DeliveryJob (Job ID: 4752a4a4-4e85-4e8b-9f27-72788abfe97c) to Sidekiq(mailers) with arguments: "DeviseMailer", "password_change", "deliver_now", #<GlobalID:0x00007f519e7501d8 @uri=#<URI::GID gid://gitlab/User/1>>
    => true
    irb(main):005:0> exit

    使用smtp来发送邮件通知

    vim /etc/gitlab/gitlab.rb
    
     gitlab_rails['smtp_address'] = "smtp.yourdomain.com"
     gitlab_rails['smtp_port'] = 25
     gitlab_rails['smtp_user_name'] = "xxx"
     gitlab_rails['smtp_password'] = "xxx"
     gitlab_rails['smtp_domain'] = "smtp.yourdomain.com" 
     gitlab_rails['smtp_authentication'] = 'plain'
     gitlab_rails['smtp_enable_starttls_auto'] = true

    配置gitlab访问方式为https

    # 创建ssl证书存放目录
        mkdir -p /etc/gitlab/ssl
        chmod 0700 /etc/gitlab/ssl
    
    # 上传证书,修改证书访问权限
        chmod 600 /etc/gitlab/ssl/gitlab.xxx.com.crt
    
    # 修改住配置,支持ssl访问
        vim /etc/gitlab/gitlab.rb
         external_url "[https://gitlab.bjwf125.com]            (https://gitlab.bjwf125.com)"
    nginx['redirect_http_to_https'] = true
     nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.xxx.com.crt"
     nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.xxx.com.key"
    
    # 重启
        gitlab-ctl reconfigure
    # 开启防火墙

      firewall-cmd --zone=public --add-port=443/tcp --permanent
      firewal-cmd reload
    备份
    1.备份默认目录是/var/opt/gitlab/backups
      
    gitlab-rake gitlab:backup:create

    2.修改默认本分目录,vim /etc/gitlab/gitlab.rb

     gitlab_rails['backup_path'] = '/data/backups'

    恢复

    gitlab-rake gitlab:backup:restore BACKUP=serail_number_date

    远程仓库相关命令

    #检出仓库:
    git clone git://github.com/jquery/jquery.git
    #查看远程仓库: 
    git remote -v
    #添加远程仓库:
    git remote add [name] [url]
    #删除远程仓库:
    git remote rm [name]
    #修改远程仓库: 
    git remote set-url --push [name] [newUrl]
    #拉取远程仓库:
    git pull [remoteName] [localBranchName]
    #推送远程仓库:
    git push [remoteName] [localBranchName]
    
    #提交本地test分支作为远程的master分支
    git push origin test:master
    #提交本地test分支作为远程的test分支
    git push origin test:test

    分支(branch)操作相关命令

    #查看本地分支:
    git branch
    #查看远程分支:
    git branch -r
    #创建本地分支:
    git branch [name] ----注意新分支创建后不会自动切换为当前分支
    #切换分支:
    git checkout [name]
    #创建新分支并立即切换到新分支:
    git checkout -b [name]
    #删除分支:
    git branch -d [name] ---- -d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项
    #合并分支:
    git merge [name] ----将名称为[name]的分支与当前分支合并
    #创建远程分支(本地分支push到远程):
    git push origin [name]
    #删除远程分支:
    git push origin :heads/[name] or gitpush origin :[name] 

    创建空的分支:(执行命令之前记得先提交你当前分支的修改,否则会被强制删干净没得后悔)**

    git symbolic-ref HEAD refs/heads/[name]
    rm .git/index
    git clean -fdx

     版本(tag)操作相关命令

    #查看版本:
    git tag
    #创建版本:
    git tag [name]
    #删除版本:
    git tag -d [name]
    #查看远程版本:
    git tag -r
    #创建远程版本(本地版本push到远程):
    git push origin [name]
    #删除远程版本:
    git push origin :refs/tags/[name]
    #合并远程仓库的tag到本地:
    git pull origin --tags
    #上传本地tag到远程仓库:
    git push origin --tags
    #创建带注释的tag:
    git tag -a [name] -m 'yourMessage'

    子模块(submodule)相关操作命令

    添加子模块:$ git submodule add [url] [path]
       如:$git submodule add git://github.com/soberh/ui-libs.git src/main/webapp/ui-libs
    初始化子模块:$ git submodule init  ----只在首次检出仓库时运行一次就行
    更新子模块:$ git submodule update ----每次更新或切换分支后都需要运行一下
    删除子模块:(分4步走哦)
     1) $ git rm --cached [path]
     2) 编辑“.gitmodules”文件,将子模块的相关配置节点删除掉
     3) 编辑“ .git/config”文件,将子模块的相关配置节点删除掉
     4) 手动删除子模块残留的目录

     忽略一些文件、文件夹不提交

    在仓库根目录下创建名称为“.gitignore”的文件,写入不需要的文件夹名或文件,每个元素占一行即可,如下:

    # Maven
    target/
    ../target
    target/*
    *.class
    *.ser
    *.ec
    
    # IntelliJ Idea
    .idea/
    out/
    *.ipr
    *.iws
    *.iml
    
    # Eclipse
    .classpath
    .project
    .settings/
    .metadata/
    
    # OS X
    .DS_Store
    

    Git常用命令汇总

    git branch 查看本地所有分支
    git status 查看当前状态 
    git commit 提交 
    git branch -a 查看所有的分支
    git branch -r 查看本地所有分支
    git commit -am "init" 提交并且加注释 
    git remote add origin git@192.168.1.119:ndshow
    git push origin master 将文件给推到服务器上 
    git remote show origin 显示远程库origin里的资源 
    git push origin master:develop
    git push origin master:hb-dev 将本地库与服务器上的库进行关联 
    git checkout --track origin/dev 切换到远程dev分支
    git branch -D master develop 删除本地库develop
    git checkout -b dev 建立一个新的本地分支dev
    git merge origin/dev 将分支dev与当前分支进行合并
    git checkout dev 切换到本地dev分支
    git remote show 查看远程库
    git add .
    git rm 文件名(包括路径) 从git中删除指定文件
    git clone git://github.com/schacon/grit.git 从服务器上将代码给拉下来
    git config --list 看所有用户
    git ls-files 看已经被提交的
    git rm [file name] 删除一个文件
    git commit -a 提交当前repos的所有的改变
    git add [file name] 添加一个文件到git index
    git commit -v 当你用-v参数的时候可以看commit的差异
    git commit -m "This is the message describing the commit" 添加commit信息
    git commit -a -a是代表add,把所有的change加到git index里然后再commit
    git commit -a -v 一般提交命令
    git log 看你commit的日志
    git diff 查看尚未暂存的更新
    git rm a.a 移除文件(从暂存区和工作区中删除)
    git rm --cached a.a 移除文件(只从暂存区中删除)
    git commit -m "remove" 移除文件(从Git中删除)
    git rm -f a.a 强行移除修改后文件(从暂存区和工作区中删除)
    git diff --cached 或 $ git diff --staged 查看尚未提交的更新
    git stash push 将文件给push到一个临时空间中
    git stash pop 将文件从临时空间pop下来
    git remote add origin git@github.com:username/Hello-World.git
    git push origin master 将本地项目给提交到服务器中
    git pull 本地与服务器端同步
    git push (远程仓库名) (分支名) 将本地分支推送到服务器上去。
    git push origin serverfix:awesomebranch
    git fetch 相当于是从远程获取最新版本到本地,不会自动merge
    git commit -a -m "log_message" (-a是提交所有改动,-m是加入log信息) 本地修改同步至服务器端 :
    git branch branch_0.1 master 从主分支master创建branch_0.1分支
    git branch -m branch_0.1 branch_1.0 将branch_0.1重命名为branch_1.0
    git checkout branch_1.0/master 切换到branch_1.0/master分支
    du -hs
    实例
    mkdir WebApp
    cd WebApp
    git init
    touch .gitignore
    git add .gitignore
    touch README
    git add README
    git commit -m 'first commit'
    git remote add origin git@git.100credit.cn:application/test.git
    git push -u origin master

     

  • 相关阅读:
    网站压力测试工具----webbench
    skin.xml
    krpano和react的结合展示
    swiper的相关用法
    js的hover实现方法。
    js的slice和split和splice和substring和substr的区别
    使用JSSDK分享页面
    微信jssdk分享功能开发
    点击复制
    JS的document.all函数使用 示例
  • 原文地址:https://www.cnblogs.com/ray-mmss/p/10861703.html
Copyright © 2020-2023  润新知