gitlab使用小结

news2024/11/17 11:24:40

GitLab 是一个基于 Git 的代码托管平台,提供了丰富的功能来管理代码仓库、CI/CD、项目管理等。以下是一些常用的 GitLab 命令和示例,帮助你更好地使用 GitLab。

1、 克隆仓库

克隆一个远程仓库到本地:

git clone git@gitlab.example.com:username/repository.git

2、 添加远程仓库

如果你已经有一个本地仓库,并且想要添加一个远程仓库:

git remote add origin git@gitlab.example.com:username/repository.git

3、 推送代码

将本地代码推送到远程仓库:

git push -u origin branch_name

4、 拉取代码

从远程仓库拉取最新代码:

git pull origin branch_name

一般情况下也可以使用:

git pull

拉取最新的代码

5、创建新分支

在本地创建一个新分支:

git checkout -b new_branch_name

6、切换分支

切换到已有的分支:

git checkout branch_name

7、合并分支

将一个分支合并到另一个分支:

git checkout target_branch
git merge source_branch

合并操作一般还是在gitlab上操作。

8、查看分支

查看所有分支:

git branch -a

9、删除分支

删除本地分支:

git branch -d branch_name

删除远程分支:

git push origin --delete branch_name

尽量不使用删除命令,防止误删,尽量在git上进行操作。

10、查看提交历史

查看提交历史:

git log

11、创建标签

创建一个标签:

git tag tag_name

12、 删除标签

删除本地标签:

git tag -d tag_name

删除远程标签:

git push origin --delete tag_name

13、查看远程仓库

查看所有远程仓库:

git remote -v

14、添加文件

将文件添加到暂存区:

git add file_name

15、提交更改

提交暂存区的更改:

git commit -m "commit message"

16、查看状态

查看当前仓库的状态:

git status

17、撤销更改

撤销工作区的更改:

git checkout -- file_name

撤销暂存区的更改:

git reset HEAD file_name

18、撤销提交

撤销最后一次提交(保留更改):

git reset --soft HEAD~1

撤销最后一次提交(丢弃更改):

git reset --hard HEAD~1

19、查看差异

查看工作区和暂存区的差异:

git diff

查看暂存区和最后一次提交的差异:

git diff --cached

20、重命名分支

重命名本地分支:

git branch -m old_branch_name new_branch_name

21、查看远程分支

查看所有远程分支:

git branch -r

22、获取远程分支

获取远程分支并创建本地分支:

git checkout -b local_branch_name origin/remote_branch_name

23、设置用户名和邮箱

git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

24、查看配置

查看全局配置:

git config --global --list

25、设置默认分支

设置默认分支(例如 main):

git config --global init.defaultBranch main

例子:新建一个项目包并推送本地代码

git init
git remote add origin http://xxxx/bag.git
git add .
git commit -m "xxxx"
git push -u origin master

关于推送报错:fatal: 无法读取远程仓库

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 密钥,可以使用以下命令生成:

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 命令:

ssh-keygen -t rsa -b 4096 -C "xxx"

接受默认路径:

Enter file in which to save the key (/home/zhangxingsheng/.ssh/id_rsa):

直接按回车键接受默认路径。

设置密码(可选):

Enter passphrase (empty for no passphrase):

你可以输入一个密码来保护你的私钥,或者直接按回车键不设置密码。

确认密码(如果设置了密码):

Enter same passphrase again:

再次输入相同的密码。

生成密钥对:
在这里插入图片描述

2、添加 SSH 密钥到 SSH 代理:

确保 SSH 代理正在运行,并且已经添加了你的私钥:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
3、将公钥添加到远程仓库

查看公钥内容:

cat ~/.ssh/id_rsa.pub

复制公钥内容:

将输出的公钥内容复制到剪贴板。

添加公钥到远程仓库:

登录到远程仓库的管理界面(例如 GitHub、GitLab 等)。

找到 SSH 密钥管理页面,通常在账户设置或项目设置中。

点击“添加 SSH 密钥”或类似的按钮。

粘贴你复制的公钥内容,并为密钥添加一个描述(例如“Work Laptop”)。

保存密钥。

上述操作需要在git上进行,操作步骤如下图所示:
在这里插入图片描述
点击右上角选择edit profile进入该界面。

4、代码推送

设置远程仓库的 URL:

git remote set-url origin ssh://git@xxx.git

验证远程仓库的 URL:

git remote -v

你应该会看到类似以下的输出:

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)

推送代码:

git push -u origin lizhen-C

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2172366.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SSH连接提示秘钥无效

说明:本文记录一次使用SSH连接服务器失效的问题。 使用SSH命令连接服务器, ssh -i ssh秘钥路径 user192.xx.xx.xx提示下面的错误; Load key "shuhe.bin": invalid format aochuang192.xx.xx.xx: Permission denied (publickey,g…

cocos打包后发布web,控制台报错.plist资源下载404

web加载报错 download failed: assets/main/native/0a/0a1a5e41-7d91-4a5d-9552-2c10e5fc5867.plist, status: 404, 应该是MIME属性没有设置允许下载.plist后缀的文件。 对于linux应该改nginx或apache,允许下载该类文件。 我部署在了windows服务器上&am…

Mybatis(进阶部分)

四 Mybatis完成CURD(二) 4.5 多条件CRUD 之前的案例中,接口里方法的形参个数都是1个;如果方法形参是两个或者两个以上时,MyBatis又该如何获取获取参数呢? Mybatis提供了好几种方式,可以获取多…

SpringMVC5-域对象共享数据

目录 使用ServletAPI向request域对象共享数据 使用ModelAndView向request域对象共享数据 使用Model向request域对象共享数据 使用map向request域对象共享数据 使用ModelMap向request域对象共享数据 Model、ModelMap、Map的关系 向session域共享数据 向application域共享…

【TabBar嵌套Navigation案例-新特性页面-基本框架 Objective-C语言】

一、我们来说这个示例程序里边的这个背景图片 1.首先呢,这个里边呢,我们这个新特性页面, 整个儿,是一个CollectionViewController,然后,我们做一下,先来做一下CollectionViewControlle,然后,我们把这个背景图片,先加上去, 这个时候,我要先创建一个新特性页面的模块…

开发提效的工具tabby快速入门

1.什么是tabby? Tabby is an open-source, self-hosted AI coding assistant. With Tabby, every team can set up its own LLM-powered code completion server with ease. 官方网站:https://tabby.tabbyml.com/ 2.tabby服务安装(Hugging Face Spaces…

28 - 移除元素

解答代码&#xff1a; int removeElement(int* nums, int numsSize, int val) {int j 0;for (int i 0; i < numsSize; i){if (nums[i] ! val){nums[j] nums[i];j;}}return j;}

机器学习笔记(李宏毅老师2021/2022课程)【更新中】

目录 前言 课程预览 第一讲 机器学习基本概念 前言 本文主要记录在听李宏毅老师的课时对应做的课堂笔记 课程&#xff1a; (强推)李宏毅2021/2022春机器学习课程_哔哩哔哩_bilibili 课程预览 机器学习找函数 &#xff08;找一个人类写不出来的复杂函数&#xff09; 课程侧…

代码随想录Day17 图论-2

103. 水流问题 本题思路很简单 要求我们找到可以满足到达两个边界的单元格的坐标 有一个优化的思路就是 我们从边界的节点向中间遍历 然后用两个数组表示 一个是第一组边界的数组 一个是第二边界的数组 如果两个数组都遍历到了某一个单元格 就说明该单元格时满足题目要求的 #…

【Linux笔记】在VMware中,为基于NAT模式运行的CentOS虚拟机设置固定的网络IP地址

一、配置VMware虚拟网络 1、打开VMware虚拟网络编辑器&#xff1a; 点击VMware主界面上方的“编辑”菜单&#xff0c;选择“虚拟网络编辑器”。 2、选择NAT模式网络&#xff1a; 在虚拟网络编辑器中&#xff0c;选择VMnet8&#xff08;或其他NAT模式的网络&#xff09;。 取消勾…

ubuntu18.04 NVIDIA驱动 CUDA cudnn Anaconda安装

1、安装NVIDIA驱动 a.查看推荐驱动 ubuntu-drivers devicesb.打开软件更新&#xff0c;选择相应的显卡 c.重启查看安装情况&#xff0c;输入nvidia-smi 2、安装CUDA 下载链接https://developer.nvidia.com/cuda-toolkit-archive 安装CUDA&#xff1a; sudo bash cuda_11…

ECharts图表图例3

java 用ecplise软件 可视化图表 代码&#xff1a; <! DOCTYPE html > < html > < head > < meta charset " UTF -8"> <1--引入 ECharts 脚本--> < script src " js / echarts . js "></ script > <…

力扣(leetcode)每日一题 2516 每种字符至少取 K 个 | 滑动窗口

2516. 每种字符至少取 K 个 给你一个由字符 a、b、c 组成的字符串 s 和一个非负整数 k 。每分钟&#xff0c;你可以选择取走 s 最左侧 还是 最右侧 的那个字符。 你必须取走每种字符 至少 k 个&#xff0c;返回需要的 最少 分钟数&#xff1b;如果无法取到&#xff0c;则返回…

专业团队如何提升多媒体翻译水平

随着对全球化内容需求的增长&#xff0c;提供准确且与文化相关的多媒体翻译的复杂性也在增加。Logrus IT团队对这一过程至关重要&#xff0c;确保翻译的各个方面——从语言适应到技术同步——都能以精确、创造性和文化洞察力来处理。以下是我们的专业团队如何在为全球观众转换多…

数据加密标准(DES)详解:原理、步骤及Python实现

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐&#xff1a;「storm…

【H2O2|全栈】关于CSS(8)CSS3扩充了哪些新鲜的东西?

目录 CSS3入门 前言 准备工作 边框属性的扩充 border-image 盒子阴影 背景属性 渐变属性 线性渐变 径向渐变 重复渐变 案例 自定义字体 预告和回顾 后话 CSS3入门 前言 本系列博客主要介绍CSS相关的知识点。 从本期开始&#xff0c;CSS的知识从CSS的2.x时代…

27 基于51单片机的方向盘模拟系统

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于STC89C52单片机&#xff0c;采用两个MPX4115压力传感器作为两路压力到位开关电路&#xff0c; 采用滑动变阻器连接数模转换器模拟重力加速度传感器电路&#xff1b; 一个按键控制LED灯的点亮与…

看Threejs好玩示例,学习创新与技术(ThreePipe)

下面这个示例我觉得特别棒&#xff0c;我会推荐给我们的美工&#xff0c;以后产品的宣传图用它。比如下面这个图&#xff0c;不需要PS&#xff0c;仅需拖拽一个照片进去&#xff0c;它会自动铺到笔记本电脑上。完成后点击截图就可以得到高清图片&#xff0c;不需要摆拍和PS。大…

机械加工常识

1 机加工工艺 增材&#xff1a;浇铸、3D打印 减材&#xff1a;齿轮机、车床、铣床、磨床 冷加工 热加工&#xff1a;焊接 拔制 2 公差设定与加工精度等级 H7/g6: 1个叫公差&#xff0c;两个合到一起叫公差配合 7和6是加工精度等级 基孔制&#xff1a;a&#xff5e;h形成间隙…

linux-CMake

linux-CMake 1.安装CMake工具2.单个源文件3.多个源文件4.生成库文件5.将源文件组织到不同的目录下6.可执行文件和库文件放置到单独的目录下7.常见的命令 CMake使用。 1.安装CMake工具 sudo apt-get install cmake2.单个源文件 1.先在文件夹里创建两个文件&#xff1a;main.c&…