百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

GitLab实战操作指南 gitlab教程

liuian 2024-12-24 14:18 44 浏览

一、Git原理

1、Git是什么?

Git是目前世界上最先进的分布式版本控制系统(没有之一)。

2、Git有什么特点?

简单来说就是:高端大气上档次!

3、GIt与SVN区别

SVN管理:

属于集中式版本控制系统,版本库是集中存放在中央服务器,必须联网才能工作,脱离局域网,采取互联网提交大文件会比较慢

Git管理:

属于分布式版本控制系统,根本没有“中央服务器”,安全性高,每个人的电脑上都是一个完整的版本库,即电脑硬盘上会有个版本这样,你工作的时候,就不需要联网了。即使中央服务器出了问题,从其他人那复制一个就好了

4、Git 工作流程

一般工作流程如下:

  • 克隆 Git 资源作为工作目录。
  • 在克隆的资源上添加或修改文件。
  • 如果其他人修改了,你可以更新资源。
  • 在提交前查看修改。
  • 提交修改。
  • 在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。

下图展示了 Git 的工作流程:

二、Git 配置

1、配置个人的用户名称和电子邮件地址

$ git config --global user.name "username"

$ git config --global user.email yourmail

2、在客户端生成ssh key

  • 安装客户端后在桌面任意空白处右击
  • 打开Git Base Here然后输入下面命令
  • 打开本地git bash,使用如下命令生成ssh公钥和私钥对
  • ssh-keygen -t rsa -C 'xxx@xxx.com' 然后一路回车(-C 参数是你的邮箱地址)
  • 然后打开~/.ssh/id_rsa.pub文件(~表示用户目录,比如我的windows就是C:\Users\Administrator),复制其中的内容
  • 打开gitlab,找到Settings -->Profile -->SSH Keys--->Add SSH Key,并把上一步中复制的内容粘贴到Key所对应的文本框,在Title对应的文本框中给这个sshkey设置一个名字,点击Add key按钮

三、Git常用操作

1、创建一个版本库

Ps:只是一个空目录哦

$ mkdir mytest

2、通过git init命令把这个目录变成Git可以管理的仓库

$ git init

Initialized empty Git repository in C:/Users/userAccount/Desktop/test/.git/

ps:目录下会自动生成.git,误删,毕竟全靠它做版本管理

第一步,用命令git add告诉Git,把文件添加到仓库:

$ git add readme.txt

执行上面的命令,没有任何显示,这就对了,Unix的哲学是“没有消息就是好消息”,说明添加成功。

第二步,用命令git commit告诉Git,把文件提交到仓库:

$ git commit -m "test add file"

[master (root-commit) 5a92835] test add file

1 file changed, 1 insertion(+)

create mode 100644 mytest/readme.txt

3、版本的操作内容操作查看

本地版本操作:(连续操作一个文件并提交好多次)

git log日志查看命令

$ git log

commit d9669171c9c5890fd282c40a7e7fe0c372074233 (HEAD -> master)

Date: Thu Apr 4 14:52:23 2019 +0800

test third version

commit 6b39a4a6ce09c472e7f9c09e50c79c78b2efee16

Date: Thu Apr 4 14:51:11 2019 +0800

test second version

commit 9e42e41abf01d85e163b3d63c41bf5b099920d47

Date: Thu Apr 4 14:47:32 2019 +0800

test first version

commit dca156cf9c72b17f5d1aaff88ebfbfc79d5b91e2

Date: Thu Apr 4 14:46:39 2019 +0800

test add file

:

比较直观的方式查看

$ git log --pretty=oneline

4、版本回退操作

比如返回上一个版本

$ git reset --hard HEAD^

HEAD is now at 6b39a4a test second version

Git的版本是生成是十六进制生成的,我的上一版本是如截图:

再查看日志当前版本是否为6b39a4a

回滚到某个指定版本

$ git reset --hard dca156cf

HEAD is now at dca156c test add file

再查看日志当前版本是否为dca156cf

优势:回滚很快呀

5、git status查看状态

比如我对readme.txt内容做了修改,再输入git status查看状态

git checkout -- file可以丢弃工作区的修改,即撤销修改

$ git checkout -- readme.txt

再次输入git status 发现文件回滚到改动之前了

6、删除文件操作

先增加一个文件

$ git add delete.txt

再删除文件

$ rm delete.txt

查看文件状态

$ git status

On branch master

Changes to be committed:

(use "git reset HEAD <file>..." to unstage)

new file: delete.txt

Changes not staged for commit:

(use "git add/rm <file>..." to update what will be committed)

(use "git checkout -- <file>..." to discard changes in working directory)

deleted: delete.txt

提交修改

$ git commit -m "remove test.txt"

[master cc6aa8f] remove test.txt

1 file changed, 0 insertions(+), 0 deletions(-)

create mode 100644 mytest/delete.txt

7、将本地仓库和远程仓库相关联

$ git remote add origin git@172.16.5.128:RefainZero/demo.git

把本地库的所有内容推送到远程库

$ git push -u origin master

从现在起,只要本地作了提交,就可以通过命令:

$ git push origin master

Everything up-to-date

8、从远程仓库获取代码

$ git clone git@172.16.5.128:RefainZero/demo.git

Cloning into 'demo'...

remote: Counting objects: 16, done.

remote: Compressing objects: 100% (5/5), done.

remote: Total 16 (delta 0), reused 0 (delta 0)

Receiving objects: 100% (16/16), done.

9、解决冲突

1)、先制造一个冲突

情景,readme.txt中的,文本默认是test

git status

修改本地的readme.txt中文本内容为“20191635”

在服务器也修改了readme.txt,修改文本内容为“就想冲突下”

2)、提交本地的代码到远程仓库

在服务器执行git pull(获取最新代码)

不负众望,果然发生代码冲突

3)、解决文件中冲突的的部分

打开冲突的文件

4)、把冲突标记删掉,把冲突解决正确

提交修改,并同步到远程仓库

$ git add readme.txt

$ git commit -m '解决冲突的测试'

[master 0feb18f] 解决冲突的测试

$ git push origin master

Counting objects: 8, done.

Delta compression using up to 8 threads.

Compressing objects: 100% (4/4), done.

Writing objects: 100% (8/8), 740 bytes | 740.00 KiB/s, done.

Total 8 (delta 0), reused 0 (delta 0)

To 172.16.5.128:RefainZero/demo.git

ca9bc5e..0feb18f master -> master

再次从服务器上获取最新代码,验证是否冲突

$ git pull

Already up to date.

四、附:Gitlab显示的提交内容

相关推荐

10种常见的MySQL错误,你可中招?

【51CTO.com快译】如果未能对MySQL8进行恰当的配置,您非但可能遇到无法顺利访问、或调用MySQL的窘境,而且还可能给真实的应用生产环境带来巨大的影响。本文列举了十种MySQL...

MySQL主从如何保证数据一致性

MySQL主从(主备)搭建请点击基于Spring的数据库读写分离。MySQL主备基本原理假设主备切换前,我们的主库是节点A,节点B是节点A的备库,客户端的读写都是直接访问节点A,节点B只是将A的更新同...

MySQL低版本升级操作流程

(关注“数据库架构师”公众号,提升数据库技能,助力职业发展)0-升级背景MySQL5.5发布于2010年,至今已有十年历史,官方已经停止更新。2008年发布的MySQL5.1版本,在2018年...

MySQL数据库知识

MySQL是一种关系型数据库管理系统;那废话不多说,直接上自己以前学习整理文档:查看数据库命令:(1).查看存储过程状态:showprocedurestatus;(2).显示系统变量:show...

Mysql 8.4数据库安装、新建用户和数据库、表单

1、下载MySQL数据库yuminstall-ywgetperlnet-toolslibtirpc#安装wget和perl、net-tools、libtirpcwgethtt...

mysql8.0新功能介绍

MySQL8.0新特性集锦一、默认字符集由latin1变为utf8mb4在8.0版本之前,默认字符集为latin1,utf8指向的是utf8mb3,8.0版本默认字符集为utf8mb4,utf8默...

全网最详细解决Windows下Mysql数据库安装后忘记初始root 密码方法

一、准备重置root的初始化密码Win+R键启动命令输入窗口;输入cmd打开命令执行窗口;##界面如下##输入命令:netstopmysqld#此操作会停止当前运行的...

互联网大厂面试:MySQL使用grant授权后必须flush privilege吗

从我上大学时,数据库概论老师就告诉我,MySQL使用grant对用户授权之后,一定记得要用flushprivilege命令刷新缓存,这样才能使赋权命令生效。毕业工作以后,在很多的技术文档上,仍然可以...

# mysql 8.0 版本无法使用 sqlyog 等图形界面 登录 的解决方法

30万以下的理想L6来了##mysql8.0版本无法使用sqlyog等图形界面登录的解决方法当我们在cmd下登录mysql时正常时,用sqlyog等图形界面连接数据库时却...

MySQL触发器介绍

前言:在学习MySQL的过程中,可能你了解过触发器的概念,不清楚各位是否有详细的去学习过触发器,最近看了几篇关于触发器的文档,分享下MySQL触发器相关知识。1.触发器简介触发器即trigg...

管理员常用的MySQL命令汇总(一)

以下是管理员常用的MySQL命令:以管理员身份连接到MySQL:mysql-uroot-p创建新的MySQL用户:CREATEUSER'username'@'...

Linux(CentOS) 在线安装MySQL8.0和其他版本,修改root密码

一:安装MySQL数据库1),下载并安装MySQL官方的YumRepositorymysql官方仓库地址:https://dev.mysql.com/downloads/repo/yum/选择自...

解决 MySQL 8.0 一直拒绝 root 登录问题

Accessdeniedforuser'root'@'localhost'(usingpassword:YES)这个错误在网上搜一下,能看到非常多的此类...

大模型MCP之MYSQL安装

前言学习大模型的时候需要一个mysql,原因还是在公司使用电脑的时候不允许按照Docker-Desktop,我的宿主机其实是MAC,我习惯上还是在centsos上面安装,就发现这件过去很简单的事情居然...

MySQL ERROR 1396

ERROR1396(HY000):OperationCREATEUSERfailedfor'usera'@'%'问题描述mysql>create...