java 实训第12天 (git版本控制继续)

Linux下使用到的命令:
    ls -al    //查看当前目录下的文件及文件夹
    mkdir     //新建目录
    rm -rf    //递归强制删除文件夹

版本控制
一、安装配置
1、下载地址
    https://git-scm.com/
    
2、初始配置
    #用户名
    git config --global user.name "自定义用户名"

    #邮箱(公司的联系方式--追责)
    git config --global user.email "邮箱地址" 

    说明:
        - 安装好git后,第一步就需要初始化个人信息。
        - 设置好后查询,检查是否配置成功,不加用户名或邮箱就代表查询

二、初始化本地仓库
1、版本库
    用于跟踪项目代码的仓库(目录),每个本地仓库中会创建一个隐藏文件夹
    .git 同级目录下做的所有操作都会被git监管。

2、初始化本地仓库
    在普通文件夹下执行如下命令,可以将该文件夹初始化为本地仓库:
    git init

3、本地仓库的构成
    - 工作区:存放代码的位置
    - 版本库:工作区中.git文件夹,其中包含暂存区 和 分支区
    - 暂存区:通过git add/rm命令执行后,操作保存的位置(类似于缓存区)
    - 分支区:是最终版本信息保存的位置,git commit 命令提交的信息都会存储在
            分支区,通常版本库初始化后会默认创建一个本地分支(master)
            也叫主分支。master最好不要删除。


    工作区代码发生修改--git add(添加)-->暂存区--git commit(提交)-->分支区
    

三、版本管理
1、提交新文件
    1-在工作区创建新文件
    2-查看本地仓库的状态 
        git status
    3-添加新建文件的状态到暂存区 
        git add 文件名
    4-将暂存区的状态提交到本地分支区
        git commit -m "备注信息"

2、修改文件
    与提交新文件的流程步骤相同
    

3、查看历史版本
    
    #查看提交的详细日志信息
    git log
    
    #查看基本日志信息
    git log --pretty=oneline

    #查看详细的操作日志
    git reflog
    
4、版本回滚
    git reset --hard HEAD^
    ---或者---
    git reset --hard commitID
    说明:
        - HEAD 头指针指向当前最新的代码(当前所在版本)
        - ^ 版本回滚到最近一次提交(回跳一个版本)
        - commitID: 执行commit时随机生成的id号,id号取前>=7位即可

5、代码撤销

#只撤销工作区的修改
git checkout -- <file>...

#撤销暂存区的状态
    第一步:从暂存撤销回工作区
    git reset HEAD <file>...

    第二步:撤销工作区
    git checkout -- <file>...
    
#已经提交到本地分支的只需要用版本回滚


6、删除文件
    情况一:通过物理删除,利用git记录操作
        - rm -f 文件
        - git add/rm 文件...
        - git commit -m "备注"

    情况二:利用git的rm命令执行删除
        - git rm 文件        #删除文件并添加暂存
        - git commit -m "备注"
        

四、远程仓库
1、定义
    如果需要将项目托管在支持git的服务中心时,要求服务中心能24小时运行,还可以
    提供其他的管理(用户,项目,用户组,权限)操作。
    
2、远程仓库分类
    Github        https://github.com/        国外
    码云        https://gitee.com/        国内
    极狐        gitlab,gitblit            私有

3、注册并新建远程仓库

    创建的远程仓库一般就是项目名。
    
    创建远程仓库的配置项:
        初始化仓库:
            选择语言 -- 选择开发项目的主要语言(计算机语言)
            .gitignore -- 配置到该文件的文件名或文件夹将不会被git跟踪管理
            开源许可 -- apache2.0
            
        设置模板:
            Readme文件 -- 项目的说明文件
        选择分支模型:
            没有特殊要求直接选为默认的master
            
4、远程仓库与本地仓库的关联

    由于本地的git与远程仓库进行代码跟踪时,对数据的安全性有绝对性要求。
    因此可以利用ssh协议完成数据传输的加解密过程。
    
    ssh配置流程:
        本地:
            1-在git bash上通过指令生成ssh的公钥和密钥(-t rsa表示加密算法)
                ssh-keygen -t rsa -C "git初始化时配置的邮箱地址"
            
            2-进入用户家目录下的.ssh文件夹
                cd ~/.ssh/
                
                说明:在文件夹中有两个文件id_rsa(密钥)  id_rsa.pub(公钥)
                    密钥文件自己保存,不能对外暴露。公钥是配置到要进行交互的服务端(码云)。
                    
            3-在码云控制台配置公钥
                控制台-设置-安全设置-ssh公钥-添加公钥
                说明:
                    公钥标题可以自定义,公钥在git bash中查看id_rsa.pub文件
                    cat ~/.ssh/id_rsa.pub
            
    仓库关联:
        情况一:远程仓库已经存在,只需要将仓库拉取到本地并完成关联。
        git clone git@gitee.com:用户名/仓库名.git
        
        情况二:先有本地仓库,再关联远程仓库
            1-先初始化本地仓库,项目根目录执行命令
                git init
            
            2-在远程创建一个名称与本地仓库同名的仓库
            3-远程仓库关联
                #在本地添加一个名叫origin的远程仓库地址
                git remote add origin git@gitee.com:用户名/仓库名.git
            
                #将远程代码拉取到本地,并解决历史差异
                git pull origin master --allow-unrelated-histories
                
                #在第一次推送本地代码到远程仓库时可以添加-u参数
                git push -u origin master
        
五、集成git工具到idea编辑器
    file->settings->versioncontrol->git

        
六、分支管理
1、查询本地所有分支
    git branch
    
2、创建本地分支
    git branch 分支名称

3、切换分支
    git checkout 分支名称
    
4、创建并切换分支
    git checkout -b 分支名称

5、合并分支
    git merge 分支名    //快速合并(只保留一条master主分支)
    git merge --no-ff 分支名    //关闭快速合并(保留合并时的分支信息)
    
    注意:合并分支时需要先切换到主分支。
    
七、代码合并冲突处理
    如果有多个人修改了同一个文件会出现合并冲突。
    删除特殊内容:
        <<<<<<< HEAD
            原来的代码
        =====
            准备合并的新代码
        >>>>>>> 正在合并的分支

    当处理完合并冲突后,需要完成一次提交。


 

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

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

相关文章

15分钟学 Go 第 35 天:Go的性能调优 (7000字详细教程)

第35天&#xff1a;Go的性能调优 目标&#xff1a;理解Go语言中基本的性能优化&#xff0c;学习如何分析和提高Go程序的执行效率。 一、性能调优概述 性能调优是软件开发中的一个重要环节&#xff0c;它可以确保程序在资源有限的环境下高效运行。Go语言天生具备高效的性能表现…

Linux APT 教程:从入门到精通

APT&#xff08;Advanced Package Tool&#xff09;是Debian及其衍生发行版&#xff08;如Ubuntu&#xff09;中的一个强大且用户友好的软件包管理工具。它允许用户轻松地安装、更新、升级和卸载软件包&#xff0c;同时处理复杂的依赖关系。本教程将从入门到精通&#xff0c;带…

java多线程编程(二)一一>线程安全问题, 单例模式, 解决程线程安全问题的措施

引言&#xff1a; 如果多线程环境下代码运行的结果是符合我们预期的&#xff0c;即在单线程环境应该的结果&#xff0c;则说这个程序是线程安全的 线程安全问题的原因&#xff1a; 一.操作系统的随机调度 &#xff1a; 二.多个线程修改同一个变量&#xff1a; 三.修改操作不是…

推荐一款非常好用的视频编辑软件:Movavi Video Editor Plus

MovaviVideoEditorPlus(视频编辑软件)可以制作令人惊叹的视频&#xff0c;即使您没有任何视频编辑方面的经验! 该款视频编辑程序没有复杂的设置&#xff0c;只需进行直观的拖放控制。在您的电脑上免费使用MovaviVideoEditor亲身体验它的简单易用性与强大功能! 基本简介 您是否…

Pimpl(Pointer to Implementation)模式详解

Pimpl&#xff08;Pointer to Implementation&#xff09;模式详解 在 C 中&#xff0c;Pimpl 模式&#xff08;Pointer to Implementation&#xff09;是一种设计技巧&#xff0c;常用于隐藏实现细节&#xff0c;减少头文件的依赖。这种模式又被称为“隐式实现”或“编译防护…

js下载excel示例demo

<Buttontype{"primary"}key"out"onClick{async ()>{const ExportJsonExcel require("js-export-excel");const datas selectedRowsState //确保勾到的数据是一个列表&#xff0c;列表中每个值是字典const option {};const dataTable […

mac 修改启动图图标数量

调整每行显示图标数量&#xff1a; defaults write com.apple.dock springboard-rows -int 7 调整每列显示的数量 defaults write com.apple.dock springboard-columns -int 8 最后重置一下启动台 defaults write com.apple.dock ResetLaunchPad -bool TRUE;killall Dock 其…

Go使用SIMD指令——以string转为整数为例

本文Go使用SIMD指令采用如下方式&#xff1a; C编写对应的程序clang编译成汇编c2goasm将上述生成的汇编转为go的汇编 准备工具 clang。直接使用apt-get install clang安装即可c2goasm。 go get -u github.com/minio/c2goasm来进行安装asm2plan9s。 go get -u github.com/min…

【算法】递归+深搜+哈希表:889.根据前序和后序遍历构造二叉树

目录 1、题目链接 相似题目: 2、题目 ​3、解法&#xff08;针对无重复值&#xff0c;哈希表递归&#xff09; 函数头-----找出重复子问题 函数体---解决子问题 4、代码 1、题目链接 889.根据前序和后序遍历构造二叉树&#xff08;LeetCode&#xff09; 相似题目: 105.…

【矩阵的大小和方向的分解】

“大小”&#xff1a;在特征值分解和奇异值分解中&#xff0c;矩阵的“大小”通常由特征值或者奇异值表示&#xff0c;它们描述了矩阵在不同方向上拉伸或压缩的程度。“方向”&#xff1a;特征向量和奇异值分解中的方向矩阵 ( U ) 和 ( V ) 则描述了矩阵作用下空间中各个方向的…

【AIGC】如何充分利用ChatGPT:有效提示框架与基本规则

概述 在使用ChatGPT进行内容创作时&#xff0c;遵循结构化的提示框架和基本规则可以显著提升AI响应的质量。本文探讨了五种结构化的提示框架&#xff0c;并详细介绍了基本规则和进阶技巧&#xff0c;帮助您更有效地与ChatGPT互动。 基础规则 规则1&#xff1a;指令放在开头&…

高级信号完整性

高级信号完整性&#xff0c;2022年版&#xff0c;1473页&#xff0c;24h秒发 内容庞大&#xff0c;都是新的内容、架构 QS排名100内的美国高校课件 发货内容&#xff1a; 29个分章节PDF 1个汇总PDF&#xff0c;1473页 点击获取 课程首先对电磁学进行了回顾。随后&#xff0c;…

yelp数据集上识别潜在的热门商家

yelp数据集是研究B2C业态的一个很好的数据集&#xff0c;要识别潜在的热门商家是一个多维度的分析过程&#xff0c;涉及用户行为、商家特征和社区结构等多个因素。从yelp数据集里我们可以挖掘到下面信息有助于识别热门商家 用户评分和评论分析 评分均值: 商家的平均评分是反映其…

qt QDataStream详解

1. 概述 QDataStream是Qt框架中的一个核心类&#xff0c;主要用于处理二进制数据的序列化和反序列化。它提供了高效、跨平台的方式&#xff0c;将C数据结构转化为字节流&#xff0c;便于在网络传输、持久化存储等场景下使用。QDataStream可以处理包括整数、浮点数、布尔值、字…

使用Spring Validation实现数据校验详解

目录 前言1. Spring Validation概述2. 配置Spring Validation2.1 引入依赖2.2 启用全局校验 3. 使用注解进行参数校验3.1 基本校验注解3.2 使用Pattern进行正则校验3.3 综合示例 4. 在控制器层应用校验4.1 方法参数校验4.2 自定义错误处理 5. 高级应用&#xff1a;自定义校验注…

链表(C 语言)

目录 一、链表的概念1. 链表的结构2. 链表的分类3. 链表的优势 二、链表的实现1. 无头单项非循环链表的实现1.1 代码说明 2. 带头双向循环链表的实现2.1 代码说明 三、链表和顺序表的区别四、链表总结 一、链表的概念 链表是一种顺序表&#xff0c;它由一个一个的节点组成&…

写文件回前端进行下载,报错:原因:CORS 头缺少 ‘Access-Control-Allow-Origin‘)

后端写文件返回前端&#xff0c;出现该错误。 解决 设置允许跨域 response.setHeader("Access-Control-Allow-Origin", "*"); 代码 后端 public void exportTemplate(HttpServletResponse response) { ArrayList<ActiveGifts> activeGifts new…

关注AI技术的应用前景,抓住未来科技发展的机遇!

在当今这个快速发展的时代&#xff0c;人工智能&#xff08;AI&#xff09;技术正以惊人的速度改变着我们的生活和工作方式。无论是在医疗、金融、教育还是制造业&#xff0c;AI的应用都在不断扩展&#xff0c;带来前所未有的机遇和挑战。关注AI技术的应用前景&#xff0c;不仅…

QinQ的基础实验

拓扑 命令 LSW1 [LSW1]vlan batch 2 3 4 Info: This operation may take a few seconds. Please wait for a moment...done. [LSW1]interface g0/0/1 [LSW1-GigabitEthernet0/0/1]port link-type hybrid [LSW1-GigabitEthernet0/0/1]port hybrid untagged vlan 2 3 [LSW…

python-读写Excel:openpyxl-(4)下拉选项设置

使用openpyxl库的DataValidation对象方法可添加下拉选择列表。 DataValidation参数说明&#xff1a; type&#xff1a; 数据类型("whole", "decimal", "list", "date", "time", "textLength", "custom"…