小易说IT 小易说IT

GitLab 常用命令

说明:GitLab 本身没有独立命令,大部分是 git 客户端命令 + GitLab CI/CD、gitlab‑runner、gitlab‑shell 相关命令;分为:日常 Git 操作、远程仓库、分支、标签、回滚、gitlab‑runner、CI 调试、故障排查。

一、基础配置(全局 / 本地)

# 设置用户名邮箱(提交显示作者)
git config --global user.name "你的名字"
git config --global user.email "gitlab注册邮箱"

# 查看配置
git config --global --list

# 本地项目配置(去掉--global,仅当前仓库)
git config user.name "项目专用名字"

二、仓库克隆、初始化

# https克隆
git clone https://gitlab.example.com/group/project.git

# ssh克隆(推荐,配置ssh密钥后)
git clone git@gitlab.example.com:group/project.git

# 本地初始化已有文件夹
git init
# 关联远程GitLab仓库
git remote add origin git@gitlab.example.com:group/project.git

# 查看远程地址
git remote -v

# 修改远程地址(切换http/ssh)
git remote set-url origin git@gitlab.example.com:group/project.git

三、日常提交推送

# 查看变更
git status

# 添加全部变更到暂存区
git add .
# 添加指定文件
git add README.md

# 提交
git commit -m "feat: 新增xx功能"

# 推送本地分支到GitLab远程
git push origin main

# 第一次推送本地新建分支,设置上游关联
git push -u origin feature/demo

# 拉取远程最新代码(合并到本地)
git pull origin main

# 拉取不自动合并,等价 fetch + merge
git fetch
git merge origin/main

四、分支操作(GitLab Merge Request 核心)

# 查看本地分支
git branch

# 查看远程所有分支
git branch -r

# 查看本地+远程全部分支
git branch -a

# 创建分支
git branch feature/login

# 创建并切换分支
git checkout -b feature/login

# git 2.23+推荐新命令 switch
git switch -c feature/login
git switch main

# 删除本地分支
git branch -d feature/login

# 删除GitLab远程分支
git push origin --delete feature/login

# 把远程分支拉到本地
git checkout -b local-branch origin/remote-branch

# 合并分支:main合并feature/login
git checkout main
git merge feature/login

五、Tag 标签(版本发布,GitLab Release)

# 创建轻量标签
git tag v1.0.0

# 创建带备注标签
git tag -a v1.0.0 -m "版本v1.0.0 正式发布"

# 查看所有标签
git tag

# 推送单个tag到GitLab
git push origin v1.0.0

# 推送全部本地标签
git push origin --tags

# 删除本地tag
git tag -d v1.0.0

# 删除GitLab远程tag
git push origin --delete v1.0.0

六、回滚、撤销(高危操作,谨慎执行)

# 撤销暂存,不改动代码
git reset HEAD README.md

# 查看提交日志
git log --oneline

# 软回滚:保留代码,撤销提交
git reset --soft commit_id

# 混合回滚:代码保留,取消暂存
git reset commit_id

# 硬回滚:代码彻底回退到此版本,丢弃后面所有修改(⚠️不要对已推送远程分支执行)
git reset --hard commit_id

# 强制推送回滚到远程(⚠️多人协作禁止,仅个人私有分支)
git push origin main --force-with-lease
# --force-with-lease比--force安全,避免覆盖别人新提交

# 放弃本地未提交全部修改
git checkout .

七、Stash 暂存工作区(临时保存没提交代码)

# 暂存当前修改
git stash save "临时保存开发中代码"

# 查看暂存列表
git stash list

# 恢复最近一次暂存,不删除stash记录
git stash apply

# 恢复并删除这条暂存记录
git stash pop

# 删除指定stash
git stash drop stash@{0}

八、gitlab‑runner 命令(CI/CD 执行器)

服务器安装 gitlab‑runner 后执行

# 注册runner,获取token来自GitLab项目设置->CI/CD->Runners
gitlab-runner register

# 查看runner状态
gitlab-runner status

# 启动/停止/重启
gitlab-runner start
gitlab-runner stop
gitlab-runner restart

# 列出本机注册的runner
gitlab-runner list

# 调试本地执行gitlab-ci.yml(本地模拟CI,需要docker)
gitlab-runner exec docker build

九、gitlab‑shell(GitLab 服务器端,运维用,普通开发者不用)

# 查看所有用户仓库
sudo gitlab-rake gitlab:shell:check
# GitLab整体健康检查
sudo gitlab-rake gitlab:check SANITIZE=true

十、常用场景组合示例

场景 1:从 main 拉取新分支开发,提交 MR

git pull origin main
git checkout -b feature/demo
# 修改代码
git add .
git commit -m "feat: demo功能"
git push -u origin feature/demo
# 之后网页端GitLab创建Merge Request

场景 2:本地分支同步远程 main 最新代码

git checkout feature/demo
git fetch origin
git rebase origin/main
# 如果冲突解决后
git add .
git rebase --continue
git push origin feature/demo --force-with-lease

场景 3:打版本发布

git checkout main
git pull origin main
git tag -a v2.1.0 -m "release v2.1.0"
git push origin v2.1.0
# GitLab页面可基于tag创建Release版本

十一、避坑提示

  1. 公共保护分支 (main/master) 禁止git push -f强制推送,优先用--force-with-lease

  2. 已经推送到远程的提交不要随便reset --hard,会覆盖同事提交

  3. rebase 不要在多人共用分支执行,只在自己特性分支使用

  4. SSH 密钥问题:ssh -T git@gitlab.example.com测试连通


本文原创作者:易君召,详见:https://www.yijunzhao.cc/about,转载请注明出处。

原文链接 https://www.yijunzhao.cc/archives/gitlab-common-commands-guide

欢迎访问 https://www.yijunzhao.cc/

https://www.yijunzhao.cc/