GitLab和Git

news2024/11/13 2:35:38

GitLab保姆级教程

文章目录

  • GitLab保姆级教程
    • 一、GitLab安装
    • 二、添加组和用户
    • 三、新增项目
    • 四、Git上传项目说明
    • 五、命令行指引 根据以下说明从计算机中上传现有文件:
    • 六、创建与合并分支
    • 七、GitLab回滚到特定版本
    • 八、数据备份与恢复
    • 九、docker中创建gitlab
  • GIT 常用命令
    • 一、git安装后-指定名称和邮箱
    • 二、创建版本库
    • 三、把文件添加add和提交commit到版本库
    • 四、版本控制
    • 五、删除文件
    • 六、远程仓库
    • 七、多人协作
    • 八、标签管理
    • 九、自定义git

一、GitLab安装

  1. 远程下载GitLab包

    wget --content-disposition https://packages.gitlab.com/gitlab/gitlabce/packages/ubuntu/xenial/gitlab-ce_12.1.4-ce.0_amd64.deb/download.deb
    
  2. 本地安装GitLab

    dpkg -i gitlab-ce_12.1.4-ce.0_amd64.deb
    
  3. 修改GitLab配置文件

    vim /etc/gitlab/gitlab.rb
    
  4. 修改GitLab URL

    ##  GitLab URL 
    ##! URL on which GitLab will be reachable. 
    ##! For more details on configuring external_url see: 
    ##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab 
    external_url 'http://192.168.1.1:8000'
    
  5. 输入外部URL

    在这里插入图片描述

  6. 登录并设置新密码

    在这里插入图片描述

  7. 完成安装

二、添加组和用户

  1. 创建私有组

    在这里插入图片描述

  2. 添加组成员

    在这里插入图片描述

  3. 添加用户界面和设置用户权限

    在这里插入图片描述

在这里插入图片描述

权限说明:

Guest:可以创建issue,发表评论,不能读写版本库

Reporter:可以克隆代码,不能提交,QA、PM可以赋予这个权限

Developer:可以克隆代码,开发,提交,push,普通开发可以授予该权限

Maintainer:可以创建项目,添加tag,保护分支,添加项目成员,编辑项目,核心开发可以授予该权限

Owner:可以设置值项目访问权限,Visibility Level,删除项目,迁移项目,管理组成员,开发组组长可以授予该权限

常用命令说明
sudo gitlab-ctl reconfigure重新加载配置,每次修改/etc/gitlab/gitlab.rb文件之后执行
sudo gitlab-ctl status查看 GitLab 状态
sudo gitlab-ctl start启动 GitLab
sudo gitlab-ctl stop停止 GitLab
sudo gitlab-ctl restart重启 GitLab
sudo gitlab-ctl tail查看所有日志
sudo gitlab-ctl tail nginx/gitlab_acces.log查看 nginx 访问日志
sudo gitlab-ctl tail postgresql查看 postgresql 日志

三、新增项目

  1. 创建新项目

    在这里插入图片描述

  2. 添加项目属性

    在这里插入图片描述

  3. 成功创建项目仓库

    在这里插入图片描述

四、Git上传项目说明

  1. 下载Git并进入项目文件夹

    在这里插入图片描述

  2. 在命令行中输入Git命令

    在这里插入图片描述

五、命令行指引 根据以下说明从计算机中上传现有文件:

  • 设置Git全局配置

    git config --global user.name "XX" 
    git config --global user.email "XXX@163.com"
    
    
  • 创建新仓库并推送文件

    git clone http://192.168.1.117:8000/deeplearning/deeplab.git 
    cd deeplab 
    touch README.md 
    git add README.md 
    git commit -m "add README" 
    git push -u origin master
    
  • 推送现有文件夹

    cd existing_folder 
    git init 
    git remote add origin [http://192.168.1.117:8000/deeplearning/deeplab.git](http://192.168.1.117:8000/deeplearning/deeplab.git) 
    git add . 
    git commit -m "Initial commit" 
    git push -u origin master
    
  • 推送现有Git仓库

    cd existing_repo 
    git remote rename origin old-origin 
    git remote add origin http://192.168.1.117:8000/deeplearning/deeplab.git 
    git push -u origin --all 
    git push -u origin --tags
    

六、创建与合并分支

  1. 在主分支上创建新分支

    在这里插入图片描述

  2. 合并分支

    在这里插入图片描述

  3. 源分支为当前分支,目标分支默认为master,确认无误,点击提交

    在这里插入图片描述

七、GitLab回滚到特定版本

  1. 在GitLab上查看并复制需要回滚的版本序列号

    在这里插入图片描述

  2. 本地文件回滚

    $ git reset --hard 5a572cb964f1713d4cc24b8dd86e0e70e7eb9e18
    
  3. 服务器代码回滚

    $ git push -f
    

八、数据备份与恢复

  1. 更改备份数据生成目录

    默认会在/var/opt/gitlab/backups目录下创建tar压缩包

    修改 /etc/gitlab/gitlab.rb里的Backup Settings

    在这里插入图片描述

    然后重载一下配置文件

    gitlab-ctl reconfigure
    

    在这里插入图片描述

  2. 创建备份文件

    gitlab-rake gitlab:backup:create
    

    切换到backups目录查看生成的tar包

    在这里插入图片描述

  3. 数据恢复

    (1)将备份文件权限修改为777,进行文件解压

    chmod 777 1659009687_2022_07_28_12.1.4_gitlab_backup.tar
    

    (2)停止数据连接服务

    gitlab-ctl stop unicorn 
    gitlab-ctl stop sidekiq
    

    (3)进行数据恢复

    gitlab-rake gitlab:backup:restore BACKUP=1659009687_2022_07_28_12.1.4
    

九、docker中创建gitlab

  1. 搜索gitlab镜像

    docker search gitlab
    
  2. 创建容器

    docker run -d -p 443:443 -p 8000:80 \ 
    --name gitlab \ 
    --restart always \ 
    --privileged=true \ 
    -v /srv/gitlab/config:/etc/gitlab \ 
    -v /srv/gitlab/logs:/var/log/gitlab \ 
    -v /srv/gitlab/data:/var/opt/gitlab \ 
    -v /etc/localtime:/etc/localtime:ro \ 
    gitlab/gitlab-ce
    
  3. 访问gitlab

    http://主机IP:8000
    

GIT 常用命令

一、git安装后-指定名称和邮箱

$ git config --global user.name "Your Name"

$ git config --global user.email "email@example.com"

二、创建版本库

$ mkdir learngit	//创建
$ cd learngit	//使用
$ pwd	//查看当前目录
$ git init	//初始化,生成.git文件(若该文件隐藏,则使用ls -ah)

三、把文件添加add和提交commit到版本库

$ git add test.txt	//添加
$ git commit -m "wrote a test file"	//提交
$ git commit -m "add 3 files."		//一次性提交多个文件

注意:必须在当前版本库和当前目录下

四、版本控制

$ git log	//查看提交历史记录,从最近到最远,可以看到3次
$ git log --pretty=oneline	//加参,简洁查看
$ git reflog	//查看每一次修改历史
$ cat test.txt	//查看文件内容
$ git status	//查看工作区中文件当前状态
$ git reset --hard HEAD^(HEAD~100)(commit id)	//回退版本
$ git checkout -- test.txt	//丢弃工作区的修改,即撤销修改
$ git reset HEAD test.txt	//丢弃暂存区的修改(若已提交,则回退)

五、删除文件

$ rm test.txt
//直接删除
$ git rm test.txt
$ git commit -m "remove test.txt"
//删错了,恢复
$ git checkout -- test.txt

六、远程仓库

$ ssh-keygen -t rsa -C "youremail@example.com"	//创建SSH Key
$ git remote add origin git@github.com:Daisy/AKgit.git	//关联
$ git push -u origin master	//将本地内容推送到远程仓库(第一次)
$ git push origin master	//将本地内容推送到远程仓库(之后)
$ git remote -v        //查看远程仓库信息
$ git remote rm origin	//删除远程仓库(解绑)
$ git clone git@github.com: Daisy/AKgit.git	//克隆远程仓库
//克隆之后使用和查看
$ cd gitskills
$ ls
$ git remote	//查看远程库的信息
$ git remote -v	//查看远程库的详细信息

七、多人协作

$ git checkout -b dev	//创建并切换到分支dev
//创建并切换到分支dev,同上
$ git branch dev	//创建
$ git checkout dev	//切换
//新版本
$ git switch -c dev	//创建并切换到分支dev
$ git switch master	//直接切换分支
$ git branch		//查看当前分支
$ git merge dev	(--no-ff)(-m)//合并,把dev分支的工作成果合并到master分支上
$ git branch -d dev	//删除dev分支 
$ git stash	//将现场储藏起来
$ git stash list	//查看储存的工作现场
//恢复和删除
$ git stash apply
$ git stash drop
//恢复并删除
$ git stash pop
$ git cherry-pick 4c805e2	//复制修改
$ git push origin master(dev)	//推送分支
$ git checkout -b dev origin/dev	//创建远程origin的dev分支到本地
$ git pull	//抓取分支(解决冲突)
$ git branch --set-upstream-to=origin/dev dev//指定本地与远程dev的链接
$ git rebase	//把本地未push的分叉提交历史整理成直线

八、标签管理

$ git tag v1.0	//打标签
$ git tag -a v0.1 -m "version 0.1 released" 1094adb //指定标签名和说明文字
$ git tag	//查看所有标签
//若是忘记打,则查找历史提交commit id ,再打上
$ git log --pretty=oneline --abbrev-commit
$ git tag v0.9 f52c633
$ git show v0.9		//查看标签详细信息
$ git tag -d v0.1	//删除标签
$ git push origin v1.0	//推送标签到远程
$ git push origin –tags	//一次性推送全部本地标签
//删除标签,(若已推送到远程,先从本地删除,从远程删除)
$ git tag -d v0.9
$ git push origin :refs/tags/v0.9 

九、自定义git

$ git config --global color.ui true	//让git显示颜色

//忽略特殊文件
//.gitignore文件
# Windows:
Thumbs.db
ehthumbs.db
Desktop.ini
# Python:
*.py[cod]
*.so
*.egg
*.egg-info
dist
build
# My configurations:
db.ini
deploy_key_rsa
//把该文件也提交到git
$ git add -f App.class		//强制添加被忽略的特殊文件
$ git check-ignore -v App.class	//检查哪个规则出错
# 排除所有.开头的隐藏文件:
.*
# 排除所有.class文件:
*.class
# 不排除.gitignore和App.class:
!.gitignore
!App.class
$ git config --global alias.st status	//配置别名
$ git config --global alias.unstage 'reset HEAD'  //配置操作别名
$ git config --global alias.last 'log -1'	//显示最后一次提交信息
$ git last	//显示最近一次的提交
$git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"  //颜色
$ cat .git/config //查看每个仓库的git配置文件
$ cat .gitconfig  //查看当前用户的git配置文件

!App.class


$ git config --global alias.st status //配置别名
$ git config --global alias.unstage ‘reset HEAD’ //配置操作别名
$ git config --global alias.last ‘log -1’ //显示最后一次提交信息
$ git last //显示最近一次的提交
$git config --global alias.lg “log --color --graph --pretty=format:‘%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset’ --abbrev-commit” //颜色
$ cat .git/config //查看每个仓库的git配置文件
$ cat .gitconfig //查看当前用户的git配置文件


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

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

相关文章

maven 依赖冲突

依赖冲突 1、对于 Maven 而言&#xff0c;同一个 groupId 同一个 artifactId 下&#xff0c;只能使用一个 version。 <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-math3 --><dependency><groupId>org.apache.commons</groupId&…

MVC 生成验证码

在mvc 出现之前 生成验证码思路 在一个html页面上&#xff0c;生成一个验证码&#xff0c;在把这个页面嵌入到需要验证码的页面中。 JS生成验证码 <script type"text/javascript">jQuery(function ($) {/**生成一个随机数**/function randomNum(min, max) {…

从0-1搭建一个web项目(路由目录分析)详解

本章分析vue路由目录文件详解 ObJack-Admin一款基于 Vue3.3、TypeScript、Vite3、Pinia、Element-Plus 开源的后台管理框架。在一定程度上节省您的开发效率。另外本项目还封装了一些常用组件、hooks、指令、动态路由、按钮级别权限控制等功能。感兴趣的小伙伴可以访问源码点个赞…

【计算机网络03】不花钱怎么搭建一个网络实验室

使用GNS3和虚拟机搭建网络实验室 1、安装抓包工具分析数据包2、定义和使用抓包筛选器3、安装和配置GNS34、配置路由器和VPCS5、使用WireShark捕获GNS3网络数据包6、VMware创建虚拟机7、使用思科PacketTracer 1、安装抓包工具分析数据包 官网安装wireshark&#xff1a;https://…

前端面试题26(vue3中响应式实现原理)

Vue 3 中响应式系统的实现主要依赖于 ES6 的 Proxy 对象&#xff0c;这与 Vue 2 中使用 Object.defineProperty 的方式有着本质的区别。Proxy 提供了一种更为强大且灵活的方法来拦截和定制对象的操作&#xff0c;例如获取、设置属性值等。下面是对 Vue 3 响应式系统实现方式的详…

鸿蒙语言基础类库:【@ohos.util.TreeSet (非线性容器TreeSet)】

非线性容器TreeSet 说明&#xff1a; 本模块首批接口从API version 8开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。开发前请熟悉鸿蒙开发指导文档&#xff1a;gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 T…

PLC数据采集网关的具体使用说明-天拓四方

PLC数据采集网关通过以太网、串口等通信接口与PLC设备连接&#xff0c;实现数据的实时采集。网关内置数据处理模块&#xff0c;可以对采集到的数据进行清洗、转换和存储&#xff0c;以满足不同应用场景的需求。同时&#xff0c;PLC数据采集网关支持多种通信协议&#xff0c;如M…

用python生成带图片的二维码(python实例二十二)

目录 1.认识Python 2.环境与工具 2.1 python环境 2.2 Visual Studio Code编译 3.带图片的二维码 3.1 代码构思 3.2 代码实例 3.3 运行结果 4.总结 1.认识Python Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 Python 的设计具有很强的可读…

每日一题~abc356(对于一串连续数字 找规律,开数值桶算贡献)

添加链接描述 题意&#xff1a;对于给定的n,m 。计算0~n 每一个数和m & 之后&#xff0c;得到的数 的二进制中 1的个数的和。 一位一位的算。最多是60位。 我们只需要计算 在 1-n这些数上&#xff0c;有多少个数 第i位 为1. 因为是连续的自然数&#xff0c;每一位上1 的…

32 华三vlan案例+STP

32 华三vlan案例STP 1 开启STP 显示根桥信息 查看stp中的接口角色 查看设备的根桥ID 最小的值是根网桥 原则一 网络初始化时&#xff0c;网络中所有的STP设备都认为自己是“根桥”&#xff0c;根桥ID为自身的设备ID。通过交换BPDU&#xff0c;设备之间比较根桥ID&#xff0c;网…

品牌策划必读:9本改变游戏规则的营销经典

作为深耕品牌十余年的策划人&#xff0c;这些年自学啃下的书不计其数。 这里特意挑选了几本知名度不高但是却非常有用的“遗珠”优质品牌策划书籍分享出来。 如果你是一位初步了解品牌的人&#xff0c;这些书籍既包含了品牌理论基础&#xff0c;也有实用的实践指导。 这些书…

【区块链 + 智慧政务】省级一体化区块链平台 | FISCO BCOS应用案例

在加强数字政府建设的大背景下&#xff0c;科大讯飞广泛应用数字技术于政府管理服务&#xff0c;推动政府数字化、智能化运行。同时&#xff0c; 统筹推进业务、数据和技术的融合&#xff0c;提升跨地域、跨层级、跨部门和跨业务的协同管理和服务水平。 当前政务信息化建设中&…

Apache配置与应用(企业网站架构部署与优化)

本章结构 如果要修改以上文件中的内容&#xff0c;想要生效&#xff0c;需要在主配置文件中能够扫描到这个默认文件的修改&#xff1a; 文件在&#xff1a; Apache 连接保持 Apache 的访问控制 针对IP地址的限制缺陷是不可预知性&#xff0c;需要事先直到对方的IP才能进行基于…

VIM模式之间的切换

命令行界面下&#xff0c;常用的文本编辑器是 VI / VIM(VI增强版)&#xff0c;VI 是 Linux 最通用的文本编辑器&#xff0c;VIM相较于VI&#xff0c;提供了代码高亮等功能&#xff0c;两者用法完全兼容&#xff1b; 1. 进入 VIM 工作界面 vim 文件名 2. 进入编辑模式 三种方…

ZFT9-7VE8043-Z同期脉冲发送装置100V JOSEF约瑟 柜内安装

ZFT9(PIG)同期脉冲发送装置 系列型号 ZFT9(PIG) 7VE8033同期脉冲发送装置; ZFT9(PIG) 7VE8043同期脉冲发送装置; ZFT9 7VE8033同期脉冲发送装置; ZFT9 7VE8043同期脉冲发送装置; 用途&#xff1a; ZFT9同期脉冲发送装置用于船舶的三相系统&#xff0c;根据发电机和电力系…

Ceph资源池pool管理

目录 1.Ceph Pool管理命令 1.1 创建 Pool 资源池 1.2 查看集群 Pool 信息 1.3 查看资源池副本、PG 和 PGP的数量 1.4 修改 Pool 副本、PG 和 PGP数量 1.5 删除 Pool 资源池 2.一个pool资源池应该包含多少PG数&#xff1f; 完成了 Ceph 集群的部署&#xff0c;但是我们如…

从零开学C++:类和对象(上)

引言&#xff1a;在学习了C的入门级知识之后&#xff0c;现在就让我们一起进入类和对象的学习吧&#xff0c;该知识点我将分为上&#xff0c;中&#xff0c;下三个部分对其进行讲解。 更多有关C语言和数据结构的知识详解可前往个人主页&#xff1a;计信猫 目录 一&#xff0c;类…

【RHCE】NFS 实验

主服务器 下载nfs-utils软件包&#xff1a; 1.如果停⽌该服务&#xff0c;启动并启⽤该服务&#xff1a; systemctl enable - now rpcbind 2.要启动 NFS 服务器&#xff0c;并使其在引导时⾃动启动&#xff1a;systemctl enable - now nfs- server 3.配置防火墙&#xff0c;开…

RAG应用的典型工作流程

下面是RAG应用的典型工作流程&#xff1a; 具体步骤如下&#xff1a; 输入&#xff1a; 是指LLM系统需要回答的问题。如果不使用RAG&#xff0c;问题直接由LLM回答。 索引&#xff1a; 使用RAG时&#xff0c;会先将相关文档分块&#xff0c;为这些块生成嵌入向量&#xff0c;并…

prometheus回顾(2)--如何使用Grafana对接Prometheus数据源的详细过程,清晰易懂。

文章目录 Grafana简介什么是GrafanaGrafana 能做什么&#xff1f;什么时候我们会用到Grafana?Prometheus有图形化展示&#xff0c;为什么我们还要用Grafana? 环境操作步骤一、Grafana安装二、Grafana数据源Prometheus添加三、Grafana添加数据仪表盘补充、如何查找仪表盘 Graf…