gitlab命令使用总结

#Gitlab服务构成
GitLab由主要由以下服务构成,他们共同承担了Gitlab的运作需要:
nginx: 静态web服务器
gitlab-shell: 用于处理Git命令和修改authorized keys列表
gitlab-workhorse: 轻量级的反向代理服务器
logrotate:日志文件管理工具
postgresql:数据库
redis:缓存数据库
sidekiq:用于在后台执行队列任务(异步执行)
unicorn:HTTP服务,GitLab Rails应用是托管在这个服务器上面的。

#主要配置文件目录
配置文件目录: /etc/gitlab/
运行pid目录:/run/gitlab/
安装目录: /opt/gitlab
数据目录:/var/opt/gitlab
默认存储库位置: /var/opt/gitlab/git-data/repositories
Nginx配置文件: /var/opt/gitlab/nginx/conf/gitlab-http.conf
Postgresql数据目录: /var/opt/gitlab/postgresql/data
日志目录:/var/log/gitlab

#常用命令
#启动控制台进行特殊操作
#比如重设用户密码
[root@gitlab]# 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

#数据操作
#比如数据备份恢复
备份:gitlab-rake gitlab:backup:create
恢复:gitlab-rake gitlab:backup:restore BACKUP=serail_number_date
数据库关系升级:gitlab-rake db:migrate
清理redis缓存:gitlab-rake cache:clear

#数据库命令行:gitlab-psql

#下载代码与提交代码等操作
git config --global user.name “name“ #设置全局用户名 
git config --global user.email xxx@xx.com #设置全局邮箱 git config --global --list #列出用户全局设置
git add index.html / . #添加指定文件、目录或当前目录下所有数据到暂存区 
git commit -m “11“ #提交文件到工作区 git status #查看工作区的状态
git push #提交代码到服务器
git pull # 获取代码到本地
git log #查看操作日志
vim . gitignore # 定义忽略文件上传至 gitlab
git reset --hard HEAD^^  #git 版本回滚, HEAD 为当前版本,加一个^为上一个,^^为上上一个版本
git reflog # #获取每次提交的 ID,可以使用--hard 根据提交的 ID 进行版本回退 
git reset --hard 5ae4b06 #回退到指定 id 的版本 # 
git branch # 查看当前所处的分支
git checkout [name] #切换分支
git checkout -b [name] #创建新分支并立即切换到新分支

#服务控制命令
查看组件运行状态:gitlab-ctl status
启动/停止/重启gitlab:gitlab-ctl start/stop/restart
启停指定模块组件:gitlab-ctl start redis/postgresql/gitlab-workhorse/logrotate/nginx/sidekiq/unicorn
升级PostgreSQL最新版本:gitlab-ctl pg-upgrade

#日志查看
查看所有日志:gitlab-ctl tail
实时各个组件日志:gitlab-ctl tail redis/postgresql/gitlab-workhorse/logrotate/nginx/sidekiq/unicorn

#远程仓库相关命令
检出仓库:git clone git://github.com/jquery/jquery.git
查看远程仓库: git remote -v,git remote show
添加远程仓库: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选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。
合并分支:git merge [name] ----将名称为[name]的分支与当前分支合并
重命名分支:git branch -m branch_0.1 branch_1.0
创建远程分支(本地分支push到远程):git push origin [name]
删除远程分支:git push origin :heads/[name] or gitpush origin :[name]

#版本(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
posted @   小糊涂90  阅读(140)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示