Docker部署配置Gitlab_docker gitlab-CSDN博客
一、前期准备
1. 配置 Git 全局身份(首次使用必须配置)
# 设置用户名(与 GitLab 用户名可不同,用于标识提交者)
git config --global user.name "你的名称" # 例:git config --global user.name "root"
# 设置邮箱(格式正确即可,无需真实邮箱)
git config --global user.email "你的邮箱" # 例:git config --global user.email "root@localhost"
# 查看配置是否生效
git config --list
二、克隆远程项目(首次获取项目)
从 GitLab 克隆项目到本地,适用于本地无项目的场景。
1. 获取 GitLab 项目地址
- 登录 GitLab 网页端 → 进入目标项目 → 点击右上角 "Clone" → 复制 HTTP 地址 (例:
http://192.168.75.146/zhu-try-group/try-project.git
)。
2. 克隆项目到本地
# 克隆命令(将远程地址替换为你的项目地址)
git clone http://192.168.75.146/zhu-try-group/try-project.git
# 克隆后会自动创建与项目同名的文件夹(如 try-project),进入文件夹
cd try-project
3. 克隆指定分支(可选)
默认克隆 main
分支,如需克隆其他分支(如 dev
):
git clone -b dev http://192.168.75.146/zhu-try-group/try-project.git
三、提交本地修改到远程仓库
本地修改代码后,同步到 GitLab 远程仓库的完整流程。
1. 查看本地修改状态
# 查看哪些文件被修改(工作区状态)
git status
# 详细查看修改内容(对比工作区与暂存区)
git diff # 查看所有修改
git diff 文件名 # 查看指定文件修改(例:git diff try.py)
2. 将修改加入暂存区
# 添加单个文件(推荐,精确控制)
git add 文件名 # 例:git add try.py
# 添加所有修改过的文件(谨慎使用,避免提交无关文件)
git add .
# 撤销暂存区的文件(若误添加)
git reset 文件名 # 例:git reset try.py
3. 提交暂存区到本地仓库
git commit -m "提交说明" # 说明需简洁明了,例:git commit -m "修复登录功能bug"
# 若提交后发现遗漏文件,可补充提交(无需新分支)
git add 遗漏的文件
git commit --amend # 合并到上一次提交,避免多余记录
4. 推送本地提交到 GitLab 远程仓库
# 推送当前分支到远程对应分支(首次推送需指定分支关联)
git push -u origin 分支名 # 例:git push -u origin main(-u 表示关联,后续可简化)
# 后续推送(已关联分支)
git push origin 分支名 # 例:git push origin main
推送时认证问题解决:
- 提示输入用户名:输入 GitLab 登录用户名(如
root
)。 - 提示输入密码:推荐使用 个人访问令牌 (在 GitLab 网页端
Preferences → Access Tokens
生成,需勾选write_repository
权限)。
四、拉取远程仓库代码到本地
同步 GitLab 远程最新代码到本地(适用于多人协作或远程有更新时)。
1. 拉取远程指定分支(推荐)
bash
# 拉取远程 main 分支到本地当前分支并合并
git pull origin main # 分支名需与远程一致
# 拉取其他分支(如 dev)
git pull origin dev
2. 拉取时冲突解决
若本地修改与远程更新冲突,会提示 Automatic merge failed
:
-
打开冲突文件,查找冲突标记: plaintext
<<<<<<< HEAD # 本地修改内容 你的代码 ======= # 分隔线 远程更新的代码 >>>>>>> origin/main # 远程分支标识
-
编辑文件,保留需要的内容,删除冲突标记。
-
解决后提交:
git add . # 标记冲突已解决 git commit -m "解决拉取冲突"
3. 强制拉取(谨慎使用)
若本地代码无需保留,强制覆盖为远程代码:
git fetch --all # 拉取所有远程分支信息
git reset --hard origin/main # 强制将本地 main 分支重置为远程 main 分支
五、分支操作(进阶常用)
1. 查看分支
git branch # 查看本地分支(当前分支前有 * 标记)
git branch -r # 查看远程分支
git branch -a # 查看所有分支(本地+远程)
2. 创建并切换分支
# 创建新分支(基于当前分支)
git branch 新分支名 # 例:git branch dev
# 创建并立即切换到新分支
git checkout -b 新分支名 # 例:git checkout -b dev
3. 切换分支
git checkout 分支名 # 例:git checkout main
4. 推送本地新分支到远程
git push -u origin 新分支名 # 例:git push -u origin dev(远程会创建同名分支)
5. 删除分支
# 删除本地分支(需先切换到其他分支)
git branch -d 分支名 # 例:git branch -d dev
# 删除远程分支
git push origin --delete 分支名 # 例:git push origin --delete dev
六、其他实用命令
命令 | 作用 |
---|---|
git log |
查看提交历史(按 q 退出) |
git log --oneline |
简洁显示提交历史 |
git reset --hard 提交ID |
回滚到指定提交版本(提交 ID 可从 git log 获取) |
git rm 文件名 |
删除文件并加入暂存区(需提交后生效) |
git stash |
临时保存工作区修改(用于切换分支前) |
git stash pop |
恢复最近一次 stash 的修改 |
备注:
- 所有命令需在项目目录下执行(先通过
cd 项目路径
进入)。 - 涉及远程操作(克隆、拉取、推送)时,需确保网络正常且 GitLab 服务运行中。
- 若忘记命令,可通过
git 命令 --help
查看帮助(例:git pull --help
)。
七、gitlab密码的获取、修改、重置
一、普通用户:找回 / 重置密码(忘记密码时)
如果忘记密码,可通过 GitLab 登录页面的 "忘记密码" 功能重置:
- 打开 GitLab 登录页面(如
https://your-gitlab-domain.com
)。 - 点击登录框下方的 "忘记密码?" 或 "Forgot your password?"。
- 输入你的 注册邮箱 或 用户名,点击 "发送重置链接"。
- 查收 GitLab 发送的邮件,点击邮件中的重置链接(通常 24 小时内有效)。
- 在跳转的页面中,设置新密码(注意密码强度要求,如长度、包含大小写字母等),确认后提交即可。
二、普通用户:主动修改密码(已知当前密码)
如果记得当前密码,可在个人设置中修改:
- 登录 GitLab 账号。
- 点击右上角的 头像 ,选择 "Preferences"(偏好设置)或 "个人设置"。
- 在左侧菜单中找到 "Password"(密码)选项。
- 输入 当前密码 ,然后设置并确认 新密码。
- 点击 "Save password"(保存密码)完成修改。
三、管理员:重置其他用户的密码
如果是 GitLab 管理员,可通过后台直接重置其他用户的密码:
-
管理员登录 GitLab,进入 "Admin Area"(管理员区域,通常在头像下拉菜单中)。
-
在左侧菜单中选择 "Users"(用户),找到需要重置密码的用户。
-
点击该用户的 用户名 进入详情页。
-
点击页面中的 "Edit"(编辑)按钮。
-
在 "Password" 字段中直接输入新密码(无需知道旧密码),确认密码后点击 "Save changes"(保存修改)。
注意:部分版本中,可能需要勾选 "Force password change on next login"(强制用户下次登录时修改密码),增强安全性。
四、特殊情况:通过命令行重置(适用于自托管 GitLab 服务器)
如果是自托管的 GitLab 服务器(如自己搭建的 GitLab),管理员可通过服务器命令行重置密码:
-
登录 GitLab 服务器的终端。
-
执行以下命令进入 GitLab Rails 控制台: bash
sudo gitlab-rails console -e production
-
查找目标用户(通过邮箱或用户名): ruby
user = User.find_by(email: 'user@example.com') # 替换为用户邮箱 # 或通过用户名查找:user = User.find_by(username: 'username')
-
重置密码(例如设置新密码为
NewPassword123!
):ruby
user.password = 'NewPassword123!' user.password_confirmation = 'NewPassword123!' # 确认密码 user.save! # 保存修改(带!表示如果失败会报错)
-
退出控制台: ruby
exit
注意事项
- 密码通常有强度要求(如至少 8 位,包含字母、数字和特殊符号),具体以 GitLab 配置为准。
- 如果账号是通过第三方登录(如 Google、LDAP、OAuth),可能需要在对应平台修改密码,而非 GitLab 直接修改。
- 自托管 GitLab 可能因版本不同,界面或命令略有差异,建议参考对应版本的官方文档。