GitLab 是一个基于 Git 的代码托管平台,提供了丰富的功能来管理代码仓库、CI/CD、项目管理等。以下是一些常用的 GitLab 命令和示例,帮助你更好地使用 GitLab。
1、 克隆仓库
克隆一个远程仓库到本地:
bash
git clone git@gitlab.example.com:username/repository.git
2、 添加远程仓库
如果你已经有一个本地仓库,并且想要添加一个远程仓库:
bash
git remote add origin git@gitlab.example.com:username/repository.git
3、 推送代码
将本地代码推送到远程仓库:
bash
git push -u origin branch_name
4、 拉取代码
从远程仓库拉取最新代码:
bash
git pull origin branch_name
一般情况下也可以使用:
bash
git pull
拉取最新的代码
5、创建新分支
在本地创建一个新分支:
bash
git checkout -b new_branch_name
6、切换分支
切换到已有的分支:
bash
git checkout branch_name
7、合并分支
将一个分支合并到另一个分支:
bash
git checkout target_branch
git merge source_branch
合并操作一般还是在gitlab上操作。
8、查看分支
查看所有分支:
bash
git branch -a
9、删除分支
删除本地分支:
bash
git branch -d branch_name
删除远程分支:
bash
git push origin --delete branch_name
尽量不使用删除命令,防止误删,尽量在git上进行操作。
10、查看提交历史
查看提交历史:
bash
git log
11、创建标签
创建一个标签:
bash
git tag tag_name
12、 删除标签
删除本地标签:
bash
git tag -d tag_name
删除远程标签:
bash
git push origin --delete tag_name
13、查看远程仓库
查看所有远程仓库:
bash
git remote -v
14、添加文件
将文件添加到暂存区:
bash
git add file_name
15、提交更改
提交暂存区的更改:
bash
git commit -m "commit message"
16、查看状态
查看当前仓库的状态:
bash
git status
17、撤销更改
撤销工作区的更改:
bash
git checkout -- file_name
撤销暂存区的更改:
bash
git reset HEAD file_name
18、撤销提交
撤销最后一次提交(保留更改):
bash
git reset --soft HEAD~1
撤销最后一次提交(丢弃更改):
bash
git reset --hard HEAD~1
19、查看差异
查看工作区和暂存区的差异:
bash
git diff
查看暂存区和最后一次提交的差异:
bash
git diff --cached
20、重命名分支
重命名本地分支:
bash
git branch -m old_branch_name new_branch_name
21、查看远程分支
查看所有远程分支:
bash
git branch -r
22、获取远程分支
获取远程分支并创建本地分支:
bash
git checkout -b local_branch_name origin/remote_branch_name
23、设置用户名和邮箱
bash
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
24、查看配置
查看全局配置:
bash
git config --global --list
25、设置默认分支
设置默认分支(例如 main):
bash
git config --global init.defaultBranch main
例子:新建一个项目包并推送本地代码
bash
git init
git remote add origin http://xxxx/bag.git
git add .
git commit -m "xxxx"
git push -u origin master
关于推送报错:fatal: 无法读取远程仓库
bash
git push -u origin lizhen-C
git@222.71.182.250: Permission denied (publickey).
fatal: 无法读取远程仓库。
请确认您有正确的访问权限并且仓库存在。
这个错误表明在尝试将代码推送到远程仓库时,Git 无法通过 SSH 协议进行身份验证。具体来说,Git 提示 Permission denied (publickey),这意味着 SSH 密钥验证失败。这种通常是由于代码从git上拉取时使用ssh时导致的,解决步骤主要如下:
1、检查 SSH 密钥:
确保你已经在本地生成了 SSH 密钥,并且将公钥添加到了远程仓库的 SSH 密钥列表中。如果你还没有生成 SSH 密钥,可以使用以下命令生成:
bash
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
生成的密钥通常位于 ~/.ssh/id_rsa(私钥)和 ~/.ssh/id_rsa.pub(公钥)。需要注意:当你运行 上述命令时,系统会提示你输入保存密钥的文件路径。默认路径是 /home/xxx/.ssh/id_rsa,你可以直接按回车键接受默认路径,或者输入一个自定义路径。
生成 SSH 密钥的完整步骤:
运行 ssh-keygen 命令:
bash
ssh-keygen -t rsa -b 4096 -C "xxx"
接受默认路径:
bash
Enter file in which to save the key (/home/zhangxingsheng/.ssh/id_rsa):
直接按回车键接受默认路径。
设置密码(可选):
bash
Enter passphrase (empty for no passphrase):
你可以输入一个密码来保护你的私钥,或者直接按回车键不设置密码。
确认密码(如果设置了密码):
bash
Enter same passphrase again:
再次输入相同的密码。
生成密钥对:
2、添加 SSH 密钥到 SSH 代理:
确保 SSH 代理正在运行,并且已经添加了你的私钥:
bash
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
3、将公钥添加到远程仓库
查看公钥内容:
bash
cat ~/.ssh/id_rsa.pub
复制公钥内容:
bash
将输出的公钥内容复制到剪贴板。
添加公钥到远程仓库:
登录到远程仓库的管理界面(例如 GitHub、GitLab 等)。
找到 SSH 密钥管理页面,通常在账户设置或项目设置中。
点击"添加 SSH 密钥"或类似的按钮。
粘贴你复制的公钥内容,并为密钥添加一个描述(例如"Work Laptop")。
保存密钥。
上述操作需要在git上进行,操作步骤如下图所示:
点击右上角选择edit profile进入该界面。
4、代码推送
设置远程仓库的 URL:
bash
git remote set-url origin ssh://git@xxx.git
验证远程仓库的 URL:
bash
git remote -v
你应该会看到类似以下的输出:
bash
origin ssh://git@222.71.182.250:1022/sage_os/open_source/api/sage_simple_interface.git (fetch)
origin ssh://git@222.71.182.250:1022/sage_os/open_source/api/sage_simple_interface.git (push)
推送代码:
bash
git push -u origin lizhen-C