gitLab

news2025/2/4 22:53:33

GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。下面是使用步骤

1. 注册

进入注册页面(需要公司的人提供地址)例如: http://xx.xxx.xx.xx:18000/users/sign_in  注册完成,将账号给管理员,开通权限。

2. 安装git客户端(生成ssh key, 提交代码什么的都需要它)

下载地址: Git - Downloads 下载完成, 默认安装即可

3. 生成 ssh key 

  3.1 随便打开一个文件夹,右键 点击 Git Bach Here (没有安装git客户端是找不到的)

  

3.2 设置全局变量:例如注册名是 abc;  邮箱是 youxiang@xx.com

git config --global user.name "abc" (加上双引号,不加没有试过)
git config --global user.email "youxiang@xx.com"

  3.3 生成ssh key 命令:

ssh-keygen -t rsa -C "youxiang@xx.com" (上面的邮箱地址)

成功的截图:(找到C:Users登录用户名.ssh 目录,里面有两个文件:id_rsa和id_rsa.pub)

4. 配置ssh, 登录gitLab 见下面截

 

执行上面步骤之后,应该就可以拉取代码了;

git相关

Feature分支 - 廖雪峰的官方网站

一些概念:

工作区间: 即我们创建的工程文件, 在编辑器可直观显示;

缓存区: 只能通过git GUI或git shell 窗口显示,提交代码、解决冲突的中转站;

本地仓库: 只能在git shell 窗口显示,连接本地代码跟远程代码的枢纽,不能联网时本地代码可先提交至该处;

远程仓库: 即保存我们代码的服务器,本文以公共版本控制系统:github为例,登录github账号后可直观显示;

 1. 代码克隆-远程库已经建立了,需要拉取代码到本地的步骤:

找到地址

  1.2 新建一个空的文件夹, 使用

1.3  git终端 输入:git clone ssh地址 ;此时提示 yes/no 那么输入 yes (不然很有可能拉取不了代码);

拉取成功,会出现项目的文件夹, cd 到 项目目录,出现master说明当前是在 master 分支上

2. 本地库关联远程库的步骤:

   1.  github上新建一个空的远程仓库:

新建完成后会有一个ssh地址: 例如:https://github.com/ImCccc/test001.git

  2.  添加ssh key(生成的方法上面已经说明,其实和gitlab添加是一个道理) 

输入命令:在本地的项目打开git终端,输入下下面的命令:

git init

git add -A

git commot -m '提交注释'

git remote add origin https://github.com/ImCccc/test001.git

git push -u origin master

`git init ` 表示在当前的项目目录中生成本地的git管理;

`git add -A` :使用-A:将新增、删除、修改的文件改动全保存至缓存区;

`git commit -m "first commit"` :将代码从缓存区保存至本地仓库,实际开发中一般使用`git commit -am "说明的文字"`,使用 -a:如果没文件更改操作(增、删、改名)就可以省略git add指令;

`git remote add origin ssh地址` :将本地仓库与指定的远程仓库创建 联系;

`push -u origin master` 将本地仓库代码推送至远程仓库,实际开发中该指令后需要输入github 账号以及密码。(首次提交注意别遗漏`-u`指定默认主机)

以上指令正常执行后, 本地仓库的代码就提交到远程仓库了:

 分支操作

新建切换分支

新建: git branch dev

切换: git checkout dev

新建切换一起: git checkout -b dev

提交到远程仓库: git push origin -u dev

打开浏览器就看到新建的分支了:

 

查看分支:

git branch 

删除远程dev分支:

git branch -r -d origin/dev
git push origin :dev

master分支合并到当前分支:

git merge master

git push origin (合并之后提交至远程仓库)

拉取代码:

git pull  

等于下面2个命令:

git fetch
git merge 分支

新增代码:

看看是否有文件需要`git add`: git status

    按顺序执行以下命令:

git add .   (添加当前目录的所有代码)

git commit -m  '提交留言'  (提交在本地的,远程还没有看到)

git push origin -u dev  (提交到远程的 dev 分支, 成功之后,浏览器应该会看到提交的代码)

 

 合并分支merge,或者拉取代码push, 出现冲突解决方案:

出现以上提示, 说明本次更新代码失败;主要在于本地工作区间远程仓库的新代码冲突了, 图解如下:

 有两种方式处理冲突: 放弃本地修改或 解决冲突后提交本地修改

1. 放弃本地修改

放弃本地修改意味着将 远程仓库 的代码完全覆盖 本地仓库 以及本地工作区间

git checkout head .

更新远程仓库的代码就不会出现冲突了:

git pull 或者 git merge dev

  

2. 解决冲突后提交本地修改

将本地修改放入缓存区(成功后本地工作区间的代码跟本地仓库代码会同步), 具体指令:

git stash 

远程仓库获取最新代码,具体指令:

git pull 或者 git merge dev

取出本地修改的代码,冲突的代码就很清晰的展现在我们面前了, 具体指令:

git stash pop

然后手工解决冲突,提交代码:

git add README.md
git commit -am '解决冲突'
git push origin master

版本回退:

回退到上一个版本(上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100):

git reset --hard HEAD^

回调未来版本:

Git提供了一个命令git reflog用来记录你的每一次命令:

回到未来:git reset --hard 97e962c

现在总结一下:

    1. HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id
    2. 穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
    3. 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

撤销修改:

git checkout -- readme.txt

git checkout -- readme.txt意思就是把readme.txt文件在工作区的修改全部撤销,这里有两种情况:

一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

总之,就是让这个文件回到最近一次git commitgit add时的状态。

git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令

缓存当前的代码在其他分支干别的事:

如果要修复一个bug,不过当前正在dev上进行的工作只进行到一半,还没法提交,Git还提供了一个stash功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作:

git stash

首先确定要在哪个分支上修复bug,假定需要在master分支上修复,就从master创建临时分支:

git checkout master

git checkout -b issue-101

修复完成后,切换到master分支,并完成合并,最后删除issue-101分支:

git checkout master

git merge issue-101

现在,是时候接着回到dev分支干活了!

git checkout dev

恢复现场:

git stash pop

命令方式提交代码太麻烦下面是 vscode 集成 gitLab

下载安装: Visual Studio Code - Code Editing. Redefined

 

vscode 集成 git 无需安装 扩展插件,下面是使用vscode 提交代码的说明(前提是完成gitLab相关的配置,未完成请参考gitLab教程)

提交代码的流程是: 拉取 -> 暂存 -> 提交 -> 推送

1)  查看修改文件

 

2)  拉取

拉取的意思是同步服务器上的最新代码,为了防止代码冲突,推送之前需要先拉取代码,操作如下:

 3)  暂存更改

单文件暂存:

暂存所有更改:

 4)  放弃更改

意思是将修改的文件还原为服务器上的版本;

和暂存更改的操作一样,选的时候选择放弃更改即可;

5)  取消暂存更改

暂存更改之后,会显示已经暂存的文件,可以取消暂存修改:

 

取消之后,文件在更改列表中:

 

6)  提交

提交的意思是将代码提交在你本地的分支上,提交成功,服务器上是没有你的提交记录的,必须推送之后才有,操作如下:

 

7)  推送

推送的意思是将代码推送到分支上,成功之后,服务器上就有你的提交记录,别人就可以拉取到你提交的代码,操作如下:

问题:在A分支上提交了一个commit,B分支也同样需要这个commit的代码,分支B需要上线,但是分支B不能合并分支A, 因为分支A有些代码不能直接上线,下面就教你如何只合并分支A的某一个commit

 1. 先找到需要合并的commit的代号,一般是一个很长的字符串,可以在gitLab找到,如下图

 2. 终端执行命令:git cherry-pick ff476ddb3535f6c6af8576c3be98530b584c9b2d

 

问题:2个人协同开发,另一位同事新建了dev_2.0.0分支,但是在本地看不到别人新建的分支(在拉取、更新操作后),导致切换不了dev_2.0.0分支

 

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

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

相关文章

大漠插件最新版7.2248

工具名称:大漠插件最新版7.2248 工具简介:/ v7.2242更新时间2022年11月16日:/ v7.2248 1. 优化某些模式,在绑定时,有小概率会卡死在绑定函数里的问题. 2. 解决Assemble DisAssemble和GetRemoteApiAddress的COM版本的DLL,在E语言下用类库封装后调用时,对64位地址解析…

4.http模块

http模块是Node.js官方提供创建web服务器的模块,在使用http模块前首先导入http模块 目录 1 一些概念 1.1 IP 1.2 域名 1.3 端口 2 创建一个基本的web服务器 3 req请求对象 4 res响应对象 5 不同地址获取不同响应 6 在服务中加载html文件 6.1 基…

vsomeip 快速入门

vsomeip 快速入门 文章目录vsomeip 快速入门1. 下载仓库2. 编译2.1 安装相关依赖2.2 编译vsomeip2.3 编译hello_world example3. 运行1. 下载仓库 git clone https://github.com/COVESA/vsomeip.git2. 编译 2.1 安装相关依赖 我的ubuntu 版本是20.04,所以以ubunt…

Python幂分布

文章目录幂分布帕累托分布Zipf分布power(a)p(x)axa−1p(x)ax^{a-1}p(x)axa−1幂分布pareto(a)p(x)amaxa1p(x)\frac{am^a}{x^{a1}}p(x)xa1ama​帕累托分布zipf(a)p(k)k−aζ(a)p(k)\frac{k^{-a}}{\zeta(a)}p(k)ζ(a)k−a​齐普夫分布 幂分布 幂分布的形式是非常简单的&#xff…

计算机毕设Python+Vue学习管理系统(程序+LW+部署)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

大脑皮层的分割方法

大脑皮层分割的意义 神经元之间的相互联系构成了大脑内信息传递的主要手段,这些连接构成了一个复杂的网络。可以通过现代医学成像技术,如磁共振成像MRI在宏观尺度上进行估计 网络节点的定义是构建大脑连接网络的关键步骤之一。使用体素水平的网络具有高…

vue之动态组件

切换组件案例 点击一个tab-bar,切换不同的组件显示: 这个可以通过两种不同的思路来实现: 方式一:通过v-if来判断,显示不同的组件。方式二:动态组件的方式。 (1)通过v-if来判断显示不…

高粱根质膜中K~+ -ATPase活性重组入人工脂质体/硫修饰脂质体包裹的VEGF反义寡核苷酸的相关研究

小编在这里给大家整理了高粱根质膜中K~ -ATPase活性重组入人工脂质体/硫修饰脂质体包裹的VEGF反义寡核苷酸的相关研究,一起来看! 高粱根质膜中K~ -ATPase活性重组入人工脂质体相关研究: 将高粱根质膜中K~ -ATPase活性重组入人工脂质体中 ,并…

迁移速度与计算性能兼得!天翼云DirtyLimit技术大显身手

虚拟机技术的快速发展使系统迁移变得更加灵活且多样化,其广泛应用也促使用户对虚拟机迁移速度和性能影响提出了更高要求。天翼云弹性计算虚拟化团队创新研发DirtyLimit虚拟机迁移加速技术,能够在保证读vCPU性能几乎不下降的情况下,有效缩短虚…

行业沙龙第五期丨供应商全生命周期管理赋能高质量采购

找不到好的供应商、供应商管理难,高成本效率低,货品质量难管控、交货不及时等等,导致错失了客户,太可惜了,怎么办呢?追根溯源,这些问题的源头多在于没有做好供应商管理。 供应商管理是供应链采…

[LeetCode 1760]袋子里最少数目的球

题目描述 题目链接:[LeetCode 1760]袋子里最少数目的球 给你一个整数数组 nums ,其中 nums[i] 表示第 i 个袋子里球的数目。同时给你一个整数 maxOperations 。 你可以进行如下操作至多 maxOperations 次: 选择任意一个袋子,并…

week8 正交化/human-level error/train,dev,test sets

文章目录前言一、8.1,8.2 正交化二、8.3,8.4评估指标1、 单一量化评估指标2、满足和优化指标三、8.5-8.7训练开发测试数据集1、训练开发测试数据集的分布。2、训练开发测试数据集的大小选择3、何时更改指标或者开发测试数据集四、 8.8-8.12 与人类水平相比较1、为什么选择与人类…

单商户商城系统功能拆解49—应用中心—在线客服

单商户商城系统,也称为B2C自营电商模式单店商城系统。可以快速帮助个人、机构和企业搭建自己的私域交易线上商城。 单商户商城系统完美契合私域流量变现闭环交易使用。通常拥有丰富的营销玩法,例如拼团,秒杀,砍价,包邮…

工业物联网解决方案:油井数据远程监控系统

石油行业是国民经济的重要能源支柱,是推动工业发展的原动力。随着物联网、云计算、5G无线通信等技术的发展,多种要素驱动下的生产系统逐步向着数字化转型,重要性越来越明显。油井数字化就是其中的重要一环。 油田开采区域广阔,分…

【苹果推iMessage送】摆设overrideUserInterfaceStyle属性以使该视图及其子视图具备特定的UIUserInterfaceStyle

推荐内容IMESSGAE相关 作者推荐内容iMessage苹果推软件 *** 点击即可查看作者要求内容信息作者推荐内容1.家庭推内容 *** 点击即可查看作者要求内容信息作者推荐内容2.相册推 *** 点击即可查看作者要求内容信息作者推荐内容3.日历推 *** 点击即可查看作者要求内容信息作者推荐…

攻防世界-宜兴网信办-fileinclude

题目 访问题目场景 查看网页源代码&#xff0c;发现其中存在php代码 <?php if( !ini_get(display_errors) ) { //ini_get是获取php.ini里的环境变量的值。环境变量未设置错误回显ini_set(display_errors, On);} error_reporting(E_ALL);//报告所有类型的错误 $lan $_COOK…

微信小程序遍历Echarts图表,实现遍历多个柱状图

1.wxml文件 <view stylewidth:100%;height:200rpx><ec-canvas id"mychart-dom-bar" canvas-id"mychart-bar" ec"{{ ec }}"></ec-canvas> </view>2.js文件 import * as echarts from ../../common/ec-canvas/echarts; …

rocketmq源码-consumer已消费offset更新逻辑

前言 这篇博客&#xff0c;主要记录consumer已经消费的offset是如何更新的 对于集群模式&#xff0c;offset是维护在broker中的&#xff1b;而广播模式&#xff0c;offset是存储在本地文件中&#xff08;暂时没有验证具体存储的位置&#xff0c;是根据源码推测的&#xff09;…

socket,http和websocket的区别

HTTP协议是非持久化的&#xff0c;单向的网络协议&#xff0c;在建立连接后只允许浏览器向服务器发出请求后&#xff0c;服务器才能返回相应的数据。当需要即时通讯时&#xff0c;通过轮询在特定的时间间隔&#xff08;如1秒&#xff09;&#xff0c;由浏览器向服务器发送Reque…

Delft3D水动力-富营养化模型

湖泊富营养化等水质问题严重威胁我国经济社会的发展&#xff0c;也是水环境和水生态领域科研热点之一。水环境模型是制定湖泊富营养化控制对策&#xff0c;预测湖泊水环境发展轨迹的重要工具&#xff0c;在环境影响评价、排污口论证等方面也有着广泛的应用。荷兰Delft研究所开发…