gitlab使用

1 创建仓库

直接在客户端首页进入自己的群组页面→新建项目→创建空白项目→填写项目名称、设置可见级别(private)、使用readme初始化仓库(创建完可直接克隆,若想上传已有仓库则不勾选)
我的用户组名为BIT-wrjgroup,我创建的项目名为testproject。
image

2 拉取代码

打开要存放代码的目录文件夹,右键→Open Git Bash here打开bash终端。

2.1 HTTPS方式

git clone https://jihulab.com/bit-wrjgroup/testproject.git

2.2 ssh方式

(1)第一次使用需要添加SSH密钥,通过以下命令可以检查本地是否有密钥

ls ~/.ssh/

(2)创建密钥

ssh-keygen -t rsa -b 4096 -C "你的邮箱"

一路回车就可以创建密钥了
image
(3)gitlab添加公钥
通过如下命令获取密钥并复制,到gitlab个人中心→偏好设置内添加并保存

ls ~/.ssh/
cat ~/.ssh/id_rsa.pub

image

image
通过以下ssh -T git@jihulab.com可以检查密钥是否添加成功,成功则输出Welcome to GitLab, @你的用户名。检查命令的域名要根据自己代码仓库的域名更改。
(4)拉取代码

git clone git@jihulab.com:bit-wrjgroup/testproject.git

3 本地项目推送到新建仓库中

3.1 全新项目(本地项目无.git目录)

# 1. 进入你的项目文件夹
cd /path/to/your/project
# 2. 初始化 Git 仓库
git init
# 3. 添加所有文件到暂存区
git add .
# 4. 第一次提交
git commit -m "首次提交"
# 5. 关联远程仓库(地址从 GitLab 项目页的 Clone 按钮复制)
git remote add origin git@jihulab.com:bit-wrjgroup/testproject.git
# 6. 推送到远程:新创建的本地分支默认为master,仓库默认分支为main
# 若仓库完全为空(也无readme)则可不加--force直接推送,有可通过--force强制覆盖合并
# main默认权限为protected,不允许强制合并,需要在设置 (Settings) > 仓库 (Repository)更改权限
git push -u origin master:main --force

作为普通开发者可以先拉取仓库内容合并后再推送

# 1. 拉取远程 main 分支的内容
git pull origin main --allow-unrelated-histories
# 2. 如果出现冲突(比如都修改了 README),解决冲突后:
git add .
git commit -m "合并远程仓库的初始文件"
# 3. 正常推送(不用 --force)
git push -u origin master:main

3.2 已有git仓库项目推送

# 1. 进入项目文件夹
cd /path/to/your/project
# 2. 查看当前远程仓库地址(可选)
git remote -v
# 3. 修改远程仓库地址为 GitLab 的地址
git remote set-url origin git@jihulab.com:bit-wrjgroup/testproject.git
# 4. 推送到 GitLab
git push -u origin master:main

4 常用GIT操作

4.1 基础指令

# 1 确认登录用户和邮箱
git config user.name
git config user.email
# 2 SSH配置
# (1)查看GIT的SSH配置
ssh -T git@jihulab.com
# (2)生成SSH密钥
ssh-keygen -t ed25519 -C "你的邮箱"
# (3)复制公钥
ls ~/.ssh
cat ~/.ssh/id_ed25519.pub
# 复制后在git平台中进入Settings→SSH and GPG keys,
# 新建SSH Key并粘贴即可使用SSH建立与远程仓库连接
# 3 清理本地仓库中跟踪已删除远程分支的分支
git remote prune origin
# 4 工作区更改保存到暂存区
git add .
git add main/*
# 5 暂存文件提交到本地仓库
git commit -m "提交更改"
# 6 本地仓库推送到远程
git push
# 7 拉取远程仓库
git pull
git pull --rebase #拉取远程最新提交并把本地提交变基到最新提交之后
# 8 更改git提交身份
# (1)更改所有PC所有GIT提交使用的身份(第一次使用GIT也需配置)
git config --global user.name "你的新名字"
git config --global user.email "你的新邮箱"
# (2)仅更改当前工程仓库的提交身份
cd /path/yourproject
git config user.name "你的项目专用名字"
git config user.email "你的项目专用邮箱"

4.2 切换分支

cd testproject
# 1 切换分支,switch为新版指令
git checkout develop
git switch develop
# 2 创建新分支
# (1)根据当前工作区创建新分支并切换分支,然后将新分支推送到远程
git checkout -b dev_20261020
git switch -c dev_20261020	#与checkout作用相同
git checkout -b dev_20261020 c1782cf4 #根据指定的提交历史创建新分支
git add .
git commit -m "新建分支"
git push -u origin dev_20261020
# 作用与-u相同:git push --set-upstream origin dev_20261020
# (2)创建新分支跟踪远程已存在的分支
git checkout -b dev_20261020 origin/develop
# (3)创建一个新分支并切换,跟踪一个本地不存在的远程分支
git checkout --track origin/dev_1021
# 3 切换跟踪的远程分支
# 当前分支跟踪的分支更改为develop
git branch -u origin/develop

4.3 状态查看

# 1 同步远程仓库状态
git fetch
# 2 查看当前分支状态
# 查看当前的分支、跟踪的远程分支及当前改动的暂存状态
git status
# 3 查看分支列表
# (1)仅查看本地分支列表
git branch
# (2)查看本地和远程分支
git branch -a
# (3)查看本地分支列表及跟踪的远程分支(根据本地仓库缓存)
git branch -vv
# (4)连接远程仓库查看远程最新配置(根据远程仓库)
git remote show origin
# 4 查看分支的提交历史记录
# (1)显示最近的两条提交记录
git log -2
# (2)一行显示当前提交
git log --oneline -2

4.4 工作区更改暂存

# 1 暂存当前工作区修改(不含未跟踪文件)
git stash
# 2 暂存当前工作区修改(包含未跟踪文件)
git stash -u
# 3 查看所有暂存记录列表
git stash list
# 4 取出指定的提交记录并将暂存记录从列表中删除
git stash pop n
git stash pop	#取出最近的暂存记录
# 5 取出指定的提交记录但不删除暂存记录
git stash apply n
git stash apply	#取出最近的暂存记录
# 6 删除指定的暂存记录
git stash drop n
git stash drop	#删除最近的一条暂存记录
# 7 查看某次储存的改动内容(只显示已跟踪文件差异)
git stash show -p n
# 8 清空所有暂存记录
git stash clear

4.5 git忽略特定文件更改

# 1 未提交过的文件/文件夹可直接将文件路径添加到.gitignore屏蔽
# (1)文件路径前有”/“则指定根目录下的文件,若无”/“则会同时屏蔽子路径下匹配的文件
echo "/main/ignorefile1.txt" >> .gitignore
echo "/local/" >> .gitignore
# (2)可以使用通配符”*“匹配多个文件
echo "/main/ignorefile*.txt" >> .gitignore
# (3)可以使用通配符”*“忽略路径下的文件,但使用”!“保留路径下的指定文件
echo "/local/*" >> .gitignore
echo "!/local//keep.txt" >> .gitignore
# 2 已经提交的文件将文件从Git索引中移除,不删除本地文件,重新提交远程文件将移除
git rm --cached "ignorefile2.txt"
echo "/ignorefile2.txt" >> .gitignore
git add .
git commit -m "移除远程仓库中误提交的文件"
git push

4.6 git拉取历史提交/回退版本

# 1 本地工作区回退到历史版本
# (1)查看历史版本的哈希
git log --oneline
# (2)通过版本哈希切换到历史版本临时查看,不改变当前工作区已更改内容
git checkout ec8f75b
# (3)重新切到最新的提交
git checkout develop
# 2 将历史版本的指定文件拉取到当前工作区
git checkout a9268f2b -- main/testignorefile2.txt
git checkout a9268f2b -- main/
git restore --source=a9268f2b main/	#作用与checkout相同
# 3 远程仓库回退到历史版本
# (1)通过版本哈希回退到历史版本,强制覆盖当前工作区并清空暂存区
git reset --hard ec8f75b
#git reset --mixed <hash>   # 默认指令:移指针 + 重置暂存区,工作区保留
git push --force origin dev_20261025
#更安全的指令:git push --force-with-lease origin <分支名>
# (2)通过历史版本哈希生成新提交回退远程仓库版本
git revert ec8f75b

4.7 合并分支

# 1 拉取main分支最新版本,将develop分支合并到main
git switch main
git pull
# (1)保留分支历史
git merge develop
# 若无冲突自动产生commit提交
# (2)分支历史合并成一条提交,,舍弃分支内提交记录
git merge --squash develop
git commit -m "合并分支提交"
# 2 当合并存在冲突时解决冲突
git status 		# 查看冲突文件
vi conflictFile	# 更改冲突文件,更改完后删除<<<<<<< ======= >>>>>>> 标记
# 打开冲突文件,会看到冲突标记:
#    <<<<<<< HEAD
#    你的当前分支内容
#    =======
#    要合并进来的分支内容
#    >>>>>>> develop
git add conflictFile	#标记为冲突已解决
git commit -m "合并分支"	#合并后提交		
# 3 放弃合并,仅在合并未提交时有效(commit之前)
git merge --abort	
posted @ 2026-10-26 02:31  wrj的博客  阅读(14)  评论(0)    收藏  举报