GitLab实战操作指南
csdh11 2025-01-13 12:04 2 浏览
一、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显示的提交内容
相关推荐
- Python 实现 | 通过 Gitlab API 获取项目工程、分支、commit 提交记录
-
前提在gitlab中你的工程创建AccessToken然后你会得到一个21位accesstoken,代码中需要用到。代码...
- 还在用Jenkins?试试Gitlab的CI/CD功能吧,贼带劲
-
原文链接:https://mp.weixin.qq.com/s/hyGkjsRIIZdiF_bG-WqLnQ原作者:macrozheng最近发现Gitlab的CI/CD功能也能实现自动化部署,用起来也...
- 使用GitLab实现CICD
-
GitLabCI/CD是一个内置在GitLab中的工具,用于通过持续方法进行软件开发:ContinuousIntegration(CI)持续集成ContinuousDelivery(C...
- 配置GitLab流水线和门禁系统
-
在项目开发的过程中,为了保证代码质量,我们会使用诸多代码质量检测工具,这些工具或是在本地,或是在云端,虽然工具可以检测出异常问题,但是这些问题还是需要我们程序员来修复,如果我们不强制所有人必须修复异常...
- 害怕代码操作是“黑盒”,用代码审计将操作变”白盒”
-
本文作者:极狐GitLab资深解决方案架构师尹学峰审计事件使用审计事件来跟踪重要事件,包括执行相关操作的人员和时间。您可以使用审计事件来跟踪例如:...
- CentOS 7下Yum及RPM安装GitLab CE 14.0.3
-
一、概述 GitLab是一个利用RubyonRails开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与GitHub类似的功能,能够浏览源代...
- centos7安装部署gitlab
-
一、Gitlab介1.1gitlab信息GitLab是利用RubyonRails一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。与Githu...
- nginx日志文件切割
-
使用脚本对nginx日志文件进行按天切割#!/bin/bashLOGS_PATH=/usr/local/nginx/logsYESTERDAY=$(date-d-1day+%Y%m%d)c...
- GitLab实战操作指南
-
一、Git原理1、Git是什么?Git是目前世界上最先进的分布式版本控制系统(没有之一)。...
- 单点登录平台Casdoor搭建与使用,集成gitlab同步创建删除账号
-
一,简介一般来说,公司有很多系统使用,为了实现统一的用户名管理和登录所有系统(如GitLab、Harbor等),并在员工离职时只需删除一个主账号即可实现权限清除,可以采用单点登录(SSO)...
- 每日一招:搭建Jenkins,Gitlab自动化打包部署项目
-
每日一招,每日掌握一个要点,日积月累的积累。虽然成为不了大神,大牛,但是养家糊口还是可以的。1.Docker-compose构建jenkins环境1.1创建docker在主机的jenkins数据映射...
- Gitlab替代,开源,轻量级代码托管解决方案
-
前言Gitea是一款基于go开发,轻量级的开源跨平台代码托管方案,适合中小团队之间的文档共享和代码协作。主要功能如下:代码托管,支持git代码推拉和版本控制,问题跟踪,允许创建私有或公开仓库;支持ap...
- 基于Docker构建安装Git/GitLab,以及制作springboot工程镜像
-
今天给大家分享的是《领先的开源自动化服务器Jenkins的应用实战》之基于Docker安装构建Git/GitLab版本控制与代码云存储的场所;使用Git管理项目,springboot工程制作镜像知识体...
- Gitlab不同方式的安装配置及常见场景用法
-
一:rpm格式安装1.安装对应的依赖包yuminstall-ycurlpolicycoreutils-pythonopenssh-serversystemctlenablesshdsy...
- 群晖使用Docker安装并配置GitLab服务器
-
群晖(Synology)内置的GitLab版本已经很老了,虽然对系统资源的利用较少,但是不利于使用。因此,要在群晖上安装GitLab服务器,最好还是通过内置的Docker进行安装,这样可以安装较新的G...
- 一周热门
-
-
一文读懂关于MySQL Datetime字段允许插入0000-00-00无效日期
-
MySQL数据库关于表的一系列操作 mysql 表操作
-
新版腾讯QQ更新Windows 9.9.7、Mac 6.9.25、Linux 3.2.5版本
-
IDC机房服务器托管可提供的服务
-
一款全能的看图软件,速度快、功能强、免费用
-
Boston Dynamics Founder to Attend the 2024 T-EDGE Conference
-
一文看懂mysql时间函数now()、current_timestamp() 和sysdate()
-
深度测评:Pixave 和图片管理之间的距离(二)
-
每天一个入坑小技巧:MySql和oracle语法区别(今日追加)
-
Serv-u 提权
-
- 最近发表
- 标签列表
-
- mysql 时间索引 (31)
- mydisktest_v298 (34)
- document.appendchild (35)
- 头像打包下载 (61)
- acmecadconverter_8.52绿色版 (39)
- oracle timestamp比较大小 (28)
- word文档批量处理大师破解版 (36)
- server2016安装密钥 (33)
- mysql 昨天的日期 (37)
- 加密与解密第四版pdf (30)
- jemeter官网 (31)
- parsevideo (33)
- 个人网站源码 (37)
- exe4j_java_home (30)
- centos7.4下载 (33)
- xlsx.full.min.js下载 (32)
- mysql 查询今天的数据 (34)
- intouch2014r2sp1永久授权 (36)
- 先锋影音源资2019 (35)
- usb2.0-serial驱动下载 (30)
- vs2010官网 (31)
- python核心编程第四版pdf (32)
- jdk1.8.0_191下载 (33)
- layer icon (32)
- axure9注册码 (33)