git与gitlab

目录

gitlab

下载与安装

重置管理员密码

gitlab命令

git远程gitlab相关命令

认证

补充

git

git 分布式版本控制

安装

git的四个区域与文件的四个状态

使用git

常用命令


        git 分布式管理系统
        gitlab  企业私有库
        github  公网共享库,全球最大的代码托管网站、开源网站、交流网站

gitlab

下载与安装

地址:    
    官网 https://about.gitlab.com/downlads
    清华镜像  https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/

安装
    wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm
    yum -y install gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm

修改配置文件(ruby语言编写):
  vim /etc/gitlab/gitlab.rb
    external_url 'URL'
  gitlab-ctl reconfigure  配置生效并启动
  gitlab-ctl show-config 验证配置
  gitlab-ctl status  查看
  可以直接访问URL登录界面

重置管理员密码

gitlab-rails console #进入gitlab控制台

user = User.find_by(username: 'root') # 切换为root用户

user.password='Picc@2222222' #设置密码

user.save! #保存

gitlab命令


  gitlab-ctl
    status
    start
    stop
    restart
    tail nginx  查看日志

git远程gitlab相关命令

    remote 
            -v 显示远程仓库
            -add  REPONAME URL 添加一个远程库

            -remove REPONAME

    push  [-f] [--set-upstream] [远程仓库的别名] [本地分支名][:远程仓库的分支名]

    参考文档:https://www.yiibai.com/git/git_push.html?_t=t
          REPONAME
                  BRANCHNAME:BRANCHNAME #推送分支到远程仓库

                          --tags #推送分支时一并把tag推送到远程仓库
                  TAGNAME:推送tag到远程仓库
                   --delete BRANCHNAME  删除远程仓库分支

        示例:

        

git remote add  picc git@192.168.0.13:java/test.git #添加远程仓库
git remote  remove origin  #删除远程仓库
git push origin  master:master --tags  #推送主分支和tag到远程仓库
git push --all picc #推送本地所有分支到远程仓库
git push picc --tags #推送tag
git branch  -r  #查看远程仓库分支

认证

参考文档:https://blog.csdn.net/wuhuiskt/article/details/136325532


  生产中往往会开通ldap统一账户管理中心
  Linux
    通过ssh登录需要生成免密的公钥,导入到gitlab中
    http登录可以通过设置好的账号密码
  Windos
    需要安装一个git客户端其他同Linux
  管理员
    Deploy Keys :只有下载权限的Keys,主要用于jenkins
    
备份


  vim /etc/gitlab/gitlab.rb
    gitlab_rails['backup_path']='/data/backup/gilab'  备份路径
    gitlab_rails['backup_keep_time']=604800   备份有效时间,默认为7天
  gitlab-ctl reconfigure  生效
  gitlab-ctl restart
  创建目录并授权git用户
  crontab -l  创建计划任务备份全库
    0 2 * * * /usr/bin/gitlab-rake gitlab:backup:create

恢复
  停止数据写入服务:
    gitlab-ctl stop unicorn
    gitlab-ctl stop sidekiq
  gitlab-rake gitlab:backup:restore BACKUP=1492296095
  gitlab-ctl restart

补充

sourcetree 工具

git

git 分布式版本控制

  • 与集中式版本控制svn对比

        1. Git是一个分布式版本控制系统,这意味着每个开发人员的电脑上都有一个完整的本地仓库副本,可以在没有网络连接的情况下进行版本控制操作,如提交、查看历史记录等;而SVN是一个集中式版本控制系统,所有数据都存储在一个中央服务器上,本地只保存一个版本,开发人员需要连接到中央服务器进行版本控制操作。

        2. 存储结构。Git将内容以元数据的形式存储,这种方式使得Git能够更高效地处理大量文件和历史记录。SVN则直接存储文件。

        3. 分支管理。Git在管理分支时更为灵活和高效,可以在同一个工作目录下快速切换不同的分支,而且Git的分支是指向特定提交的指针,创建和切换成本低。SVN的分支是目录的拷贝,创建和切换成本较高。

        4. 版本管理。Git使用SHA1算法为每个版本生成唯一的标识,这有助于追溯和验证历史记录的完整性。SVN有明确的版本号。

        5. 克隆目录速度。Git通常比SVN更快地进行克隆操作,尤其是在处理大量文件和历史记录时。

        6.易用性。SVN通常被认为更容易上手,适合新手使用。Git由于命令较多,被认为是较难学习的,但一旦掌握,可以执行更复杂的操作。

        7. 内容完整性。Git使用哈希算法存储文件,确保了内容的完整性,减少了在遇到故障和网络问题时对版本库的损坏风险。

安装

官网下载地址:https://git-scm.com/downloads

  • windows安装

        百度云盘下载:https://pan.baidu.com/s/1KiBxlnhwswPRPRY_B_Esww
        提取码:xbun

  • Linux安装

          方法一:yum安装版本比较老

                yum -y install git 
        方法二:编译安装较新版本
            (1)安装依赖
                      yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
            (2)下载解压
                      wget https://github.com/git/git/archive/v2.7.4.zip
                      unzip v2.7.4.zip
                      cd git-2.7.4
            (3)编译安装
                      make prefix=/usr/local/git all
                      make prefix=/usr/local/git install
                      rm -rf /usr/bin/git
                      ln -s /usr/local/git/bin/git /usr/bin/git
                      git --version

  • 配置用户名和邮箱:

        git config --global user.name 'NAME'
        git config --global user.email 'MAIL'
        git config --global --list  查看

git的四个区域与文件的四个状态

  • 四个区域:

        远程仓库:git push 到远程仓库的文件
        本地仓库:已生成版本的文件,git status不显示文件,可以用git log查看版本信息
        暂存区域:存档add的文件,git status显示为绿色
        工作目录:存放新文件和已修改的文件,git status显示为红色

  • 文件的四个状态:

        untracked  未纳入版本控制的状态
        unmodified 纳入本地仓库中(commit)
        modified  修改unmodified状态的文件,状态会变成modified的文件状态,并且从本地仓库回到工作目录中
        staged  纳入版本管理的文件(add);暂存区中

使用git

(1)进入,进入想要版本控制的代码所在目录

(2)提名,进行初始化操作(初始化命令:git init)。初始化后,会在当前目录自动创建 .git 文件夹,该文件是Git中最重要的文件夹,因为Git相关文件以及版本都将保存在该文件夹中,通过Git命令可以将所有版本保存在 .git 文件中,两条命令创建一个版本:

(3)管理,使用git status命令查看当前目录下文件状态

        

        git add FILENAME 添加指定文件到暂存区,FILENAME可以用.表示当前所有文件,这时颜色会变为绿色。

                

(4)生成版本。命令:git commit [-m]

        

(5)版本迭代

        修改index.txt内容然后提交代码生成新的版本

        

常用命令


  git
    --version
    init  初始化,并加入版本控制
    add  纳入版本管理(添加到暂存区)
    fetch  拉取
    commit
      -m #注释

#示例
git commit -m 'v1'


    status  检测当前文件夹下面的文件状态
      -s  状态概览
    diff  #不加参数比较本地工作区和暂存区的diff信息

        git diff commit1 commit2 或 git diff branch1 branch2 :版本库中不同commit(也可以使用HEAD表示)、分支的diff信息(使用git commit 将暂存区修改提交到了版本库)

        --cached #比较版本库中不同commit、分支的diff信息(使用git commit 将暂存区修改提交到了版本库)
     
    log
      --author=''  过滤名字
      --pretty=oneline FILE  可查看文件的提交的id和改动注释
      -p FILE  查看文件具体修改的内容
      --oneline  查看简写日志
        --graph  查看版本路线
    rm  从版本库中移除
      --cached FILENAME  从暂存区中移除,并移出版本控制
    mv
    show ID  查看提交的详情,不加ID默认为最新版本信息

        
    checkout (切换指针,可以来回切换,与reset只能回滚不同)

    参考文档:https://www.cnblogs.com/gaoBlog/p/10955352.html
      ID -- FILE  指定文件复位到ID的版本
      -- FILE  工作目录改动后可还原到未改动时的状态
      BRANCHNAME  切换分支
      -b BRANCHNAME  创建并切换分支
    reset  回滚,参考文档:https://blog.csdn.net/qq_39852676/article/details/129094985
      --soft ID  回滚版本库到指定ID,工作目录和暂存区不动
      --mixed ID  (默认)回滚版本库到指定ID,缓存区被清空
      --hard ID  回滚版本库到指定ID,暂存区和工作目录复位到ID的版本
        省略ID写法(需大写HEAD):  
          HEAD FILENAME  取消add(追踪)操作,也就是取消暂存区操作,文件绿色变为红色
          HEAD^  复位到上一个版本(一个^表示复位一个版本,同理^^表示复位上两个版本)   
          HEAD~2  等同于 HEAD^^      
          例:
          git reset HEAD home/home.html
          git reset HEAD^^ home/home.html
          git reset HEAD~2 home/home.html
    reflog  查看包括reset完成时之前的记录和ID,然后可以再回滚回去             
        

    pull  直接拉取最新版本的代码并直接与本地合并
    fetch  拉取最新代码,需手动与本地代码合并
    
    tag  查看标签(相当于做一次快照)
          -a  手动编写标签信息,默认加在最新一次的commit上  

          -m 编写备注信息
          ID  标签创建在此ID上
          -d TAGNAME  删除标签
    

    分支功能:只保存修改的文件,没有修改的会用指针指向源文件。可以节省空间并且创建版本更快
    branch  查看分支
      BRANCHNAME  创建分支
      -d BRANCHNAME  删除分支
      -D BRANCHNAME  强制删除
      -v
      --merge  查看已合并的分支
      --no-merge  查看未合并的分支
    merge(master上执行)合并代码并提交
      BRANCHNAME
      --abort  忽略其他代码,保留原分支代码(代码冲突;也可以手动修改)
    rebase   合并代码
      注释:区别于merge,rebase始把多条分支的提交记录合并成一个,并且日志查不到合并日志,merge是能查到包括合并在内的所有提交记录,但是非主分支上的提交记录并没有合并到主分支上,查看日志的时候是在非主分支上提取的
    clong URL BRANCH  远程克隆分支  
    reflog  查看包括reset完成时之前的记录和ID,然后可以通过checkout ID 切换指针,其他不变,可以新建分支合并还原

补充:
  安装谷歌访问助手
    octotree插件
      作用:可以树状显示仓库
      enhanced github
        作用:可查看单个文件的大小,并可以下载单个文件
      gitzip for github
        作用: 直接下载文件夹

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

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

相关文章

PHP基础教程

🐌博主主页:🐌​倔强的大蜗牛🐌​ 📚专栏分类:PHP 📚参考教程:菜鸟\编程网❤️感谢大家点赞👍收藏⭐评论✍️ 目录 一、PHP语法 基本的 PHP 语法 PHP 注释 PHP空白不敏…

环保访谈|浙江双视专注红外机器视觉及智能化应用,保障安全生产

近期,中联环保圈希姐采访了浙江双视科技股份有限公司环保行业销售总监孙波,深入了解了双视科技的发展历程、产品和解决方案、合作流程、核心竞争力以及未来规划。 双视于2014年创立,专注于红外机器视觉、人工智能技术与应用开发,…

JuiceFS v1.2-beta1,Gateway 升级,多用户场景权限管理更灵活

JuiceFS v1.2-beta1 今天正式发布。在这个版本中,除了进行了大量使用体验优化和 bug 修复外,新增三个特性: Gateway 功能扩展:新增了“身份和访问管理(Identity and Access Management,IAM)” 与…

系统如何做好安全加固?

一、Windows系统 Windows系统出厂时,微软为了兼容性,默认并未对系统安全做严格的限制,因此还需要做一些基本的安全加固,方可防止黑客入侵。 1、系统补丁更新 为什么要更新系统补丁?很多人感觉漏洞更新没必要&#x…

TC6291C 是一款电流模式升压型DC-DC转换器芯片

一般概述 TC6291C是一款电流模式升压型DC-DC转换器。其脉宽调制电路,内置0.2Q功率场效应管使这个调节器具有高功率效率。内部补偿网络也减少了多达6个的外部元件。误差信号放大器的同相输入端连接到0.6V精密基准电压,内部软启动功能可以减小瞬间突…

划重点!PMP报考条件、报考步骤、考试内容、适合人群

参加PMP认证的好处,可以从几个方面来认识: 一、参加PMP认证与考试的过程,同时是一个系统学习和巩固项目管理知识的过程 二、参加PMP认证,您可以获得由PMI颁发的PMP证书 而拥有PMP认证表示你已经成为一个项目管理方面的专业人员…

Azide-PEG-Azide,82055-94-5可以用于制备抗体、蛋白质、多肽等生物分子的标记物

【试剂详情】 英文名称 Azide-PEG-Azide,N3-PEG-N3 中文名称 叠氮-聚乙二醇-叠氮,聚氧乙烯二叠氮化物 CAS号 82055-94-5 外观性状 由分子量决定,粘稠液体或者固体。 分子量 0.4k,0.6k,1k,2k&#…

基于springboot+vue+Mysql的影城管理系统

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…

Ansible简介版

目录 架构 环境部署 一、Ansible安装部署 1.yum安装Ansible 2.修改主机清单文件 3.配置密钥对验证 4.ansible-doc 5.看被控主机 二、常用模块 1.Command模块 2.Shell模块 3.Cron模块 1.添加 2.删除 4.User模块 5.Group模块 1.创建组 ​编辑 ​编辑 ​编辑…

java+jsp+Oracle+Tomcat 记账管理系统论文(完整版)

⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️ ➡️点击免费下载全套资料:源码、数据库、部署教程、论文、答辩ppt一条龙服务 ➡️有部署问题可私信联系 ⬆️⬆️⬆️​​​​​​​⬆️…

基于POSIX标准库的读者-写者问题的简单实现

文章目录 实验要求分析保证读写、写写互斥保证多个读者同时进行读操作 读者优先实例代码分析 写者优先示例代码分析 实验要求 创建一个控制台进程,此进程包含n个线程。用这n个线程来表示n个读者或写者。每个线程按相应测试数据文件的要求进行读写操作。用信号量机制…

贪吃蛇游戏(C语言实现)

目录 游戏效果展示文件代码的展示test.cSnake.cSnake.h 下一个坐标不是食物 游戏效果展示 QQ录屏20240507163633 文件 代码的展示 test.c #define _CRT_SECURE_NO_WARNINGS#include<locale.h> //设置本地化 #include"Snake.h"//游戏的测试逻辑 void test() {…

【how2j Vue部分】两种在Vue的Ajax框架——fetch axios

fetch.js 和 axios.js 都是 Vue 中比较常见的两种ajax框架 1. fetch.js 一般说来 Vue 不会直接使用原生的 Ajax 而是使用 ajax 框架。 而 fetch.js 就是眼下比较流行的一种 ajax 框架 1. 准备 json数据&#xff1a;var url "https://gitee.com/api/v5/users/liyangyf&…

STM32F407VET6 学习笔记1:GPIO引脚认识分类与开发板原理图

今日学习STM32F407VET6 &#xff0c;首先从基本原理图、引脚方面开始做个初步理解并整理&#xff1a; 这里使用的学习开发板是在嘉立创购买的 立创梁山派天空星&#xff0c;芯片是 STM32F407VET6 主要对这个芯片的引脚做一些归纳认识、对开发学习板原理图设计进行认识理解:最…

新的字符设备注册方式和自动创建节点

文章目录 前言一、设备号的申请1.自动申请设备号2.用户指定设备号 二、获取设备号的程序格式1.格式 三、字符设备注册1.新的字符设备注册方法 四、节点的自动创建1.mdev机制2.mdev机制实现流程①创建一个类②创建一个设备 五、总结流程六、文件私有数据 前言 &#x1f4a6; re…

食品饮料-冲饮市场线上发展现状:香飘飘品牌监控数据分析

近期&#xff0c;老国货品牌香飘飘在国内备受关注&#xff0c;起因是某网友在日本华人超市内看到香飘飘Meco果汁茶产品包装统一增加了几组“海洋不是日本的下水道”、“请日本政客豪饮核污水”、“地球可以没有日本但不能没有海洋”等中日双语标语&#xff0c;正大光明讽刺日本…

茶多酚复合纳米纤维膜

茶多酚复合纳米纤维膜是一种结合了茶多酚与纳米纤维技术的创新材料。茶多酚作为茶叶中多酚类物质的总称&#xff0c;具有抗氧化、抗辐射、抗*等多种药理作用&#xff0c;是一种非常有益的天然物质。而纳米纤维膜则因其超细纤维结构、高比表面积和高孔隙率等特性&#xff0c;在过…

(五)JVM实战——JVM性能调优与监控

JVM调优案例的场景 为什么要调优&#xff1a;防止或者解决jvm虚拟机中的OOM问题&#xff1b;减少FullGC出现的频率&#xff0c;解决系统运行卡、慢问题JVM调优案例的四个方面 OOM(堆溢出)&#xff1a;java heap spaceOOM(元空间溢出)&#xff1a;MetaspaceOOM(GC overhead lim…

腾讯技术面霸挑战赛开启!破解奇葩题赢10000元现金好礼

金三银四&#xff0c;求职正当时&#xff0c;在互联网的技术面试中&#xff0c;对程序员的考察从技术知识到逻辑思维、行为测试&#xff0c;乃至难度颇高的智力题&#xff0c;考验临场反应的职场高情商“送命题”。让人大呼奇葩的技术面试题&#xff0c;你能破解几道&#xff1…

区间预测——conformal tights

conformal tights 是一个python包 特征&#xff1a; sklearn元估计器&#xff1a;向任何scikit-learn回归器添加分位数和区间的共形预测 darts预测&#xff1a;向任何scikit-learn回归器添加共形校准的概率预测 保形校准&#xff1a;准确的分位数和可靠的覆盖的区间 相干分…