gitlab使用小结

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
相关推荐
PersistJiao1 小时前
Spark 分布式计算中网络传输和序列化的关系(二)
大数据·网络·spark·序列化·分布式计算
九河云1 小时前
如何对AWS进行节省
大数据·云计算·aws
FreeIPCC2 小时前
谈一下开源生态对 AI人工智能大模型的促进作用
大数据·人工智能·机器人·开源
梦幻通灵2 小时前
ES分词环境实战
大数据·elasticsearch·搜索引擎
Elastic 中国社区官方博客2 小时前
Elasticsearch 中的热点以及如何使用 AutoOps 解决它们
大数据·运维·elasticsearch·搜索引擎·全文检索
天冬忘忧3 小时前
Kafka 工作流程解析:从 Broker 工作原理、节点的服役、退役、副本的生成到数据存储与读写优化
大数据·分布式·kafka
sevevty-seven3 小时前
幻读是什么?用什么隔离级别可以防止幻读
大数据·sql
Yz98765 小时前
hive复杂数据类型Array & Map & Struct & 炸裂函数explode
大数据·数据库·数据仓库·hive·hadoop·数据库开发·big data
那一抹阳光多灿烂6 小时前
Spark中的Stage概念
大数据·spark
北京鹏生科技有限公司6 小时前
EcoVadis审核是什么?EcoVadis审核流程包括什么?
大数据·百度