git使用、git与idea结合、gitee、gitlab

news2024/11/13 7:30:04

本文章基于黑马程序javase模块中的"git"部分

        先言:git在集成idea中,不同版本的idea中页面显示不同,操作时更注重基于选项的文字;git基于命令操作参考文档实现即可,idea工具继承使用重点掌握      


1.git概述

        git是目前世界上最先进的分布式文件版本控制系统

        分布式:将数据进行拆分,每个数据部署到不同的服务器中,数据独立

        版本控制:将一组文件的改动记录下拉,形成版本记录,以便需要时恢复

        作用:代码共享(每位开发者把自己的代码上传到云服务器,同时使用git还可以将其他人的代码下载到自己的电脑上),回溯版本,追踪信息

git与SVN区别:

        git是分布式的,SVN不是

        Git把内容按照元数据(修饰数据的数据)方式存储,而SVN是按照文件

        Git分支和SVN的分支不同

        Git没有一个全局的版本号,而SVN有

        Git内容完整性优于SVN

2,git工作流程

        工作区 :在电脑能看见的目录(注意:电脑上的任意目录只要通过指令[git init]就会把目录变成工作区

        版本库:工作区有一个隐藏目录   .git   ,这个不算工作区,而是git 的版本库

        暂存区index:一般存放在 .git 目录下的index文件(git/index)中,所以我们把暂存区有时也叫做索引;其作用是作为缓冲,理解为临时提交的数据,当数据确认的时候可以一次性将所有文件从暂存区提交到本地仓库中;注意,暂存区在版本库中就是一个文件而已

        本地仓库:版本库中的一部分;其作用是存在不同版本的代码,例如已完成10%的代码,完成20%的代码

        选中任意一个项目,然后右击,选择[打开于]的[Explorer]----目的是为了找到文件在哪里,此时这个文件夹还不是工作区

3,git下载与安装

        1,进入官网下载软件,注意存放路径不要有中文:https://gitforwindows.org/;官网慢可以用国内的镜像:https://npm.taobao.org/mirrors/git-for-windows/

        2.安装成功之后可以做一个校验

        或者在空白位置右击有[git gui here]与[git bash here]就说明已经安装成功了

4,git本地操作

4.1本地操作-初始化工作区         

基本指令:    

        git init:将目录初始化为工作区

        git status:查看当前状态

步骤:

        1.在合适的位置建立一个空目录git-test(命名随意),

        2,选中文件夹后右击,选择[git bash here]

        输入git innit后会发现git-test下有一个名为.git的文件夹,这就是我们刚刚提到的版本库,这也说明我们的git-test变为工作区

        在giit-test下新建一个reanme.txt文件,然后在git输入git status,发现有个红色提示的readme.txt文件,这说明这个文件还没有提交到版本库当中(变绿代表已经提交到暂存区)

4.2 add与commit

        命令:git add .

        add后面要跟着文件,如果是所有文件就使用  .  表示,表示要把指定文件提交到暂存区

        以下展示两种提交方式 

        如果我们此时输入git status,会发现readme.txt文件变绿 

        命令:git commit -m '第一个版本提交'

        m代表message消息的意思,该命令是把暂存区的所有东西提交到本地仓库,而(root-commit)后面的字符串就是版本号(比如我现在的版本号就是b993d04);此时git status是没有颜色提示的

特别提示:如果是第一次提交出现了弹出狂,需要填写如下内容

        1.命令:"git config --global user.emall "123456@qq.com"

           说明:指定邮箱,写成自己的常用邮箱

        2.命令:"git config --global user.name "自己的英文名字"

        说明:指定操作者

4.2 本地操作-差异比较

        比较的是暂存区、本地仓库工作区之间有无差别 

        前置条件:打开readme.txt,稍作更改(随意自己写点什么就是了)

         此时git status发现,文件又变红了,说明现在这个文件还没上传到暂存区,也没上传到本地仓库

        命令:git diff 需要比较差异的文件名

        这是比较工作区与在暂存区的区别

        命令:git diff head 需要比较差异的文件名

        这是比较工作区与本地仓库的区别

        命令:git diff --cached 需要比较差异的文件名

        这是比较暂存区与本地仓库的区别

  1. git diff --cached 上一次最后一次提交到工作树中文件(也就是head)与暂存区内文件的改动。查看已缓存的改动。

        我在reame.txt新增的三行数字都输出出来了,这三行数字前面的加号表示这是我在readme.txt【新增】的内容 

        回车后啥内容也没有,说明无差异 

4.3 本地操作-版本回退

        前置条件,先把上文的readme.txt文件提交了,这样子我们才有多于一个版本的版本库

输入:git add . 

输入:git commit -m '我的第二个版本‘

        前置完成之后,开始本部分的学习

        命令:git log

        查看当前提交日志

        命令: git reflog

        查看所有操作简短日志

        命令: git reset --hard 版本唯一索引值

        回退到制定版本

        git reset --hard的版本号可以通过git reflog查询 

         

        在回到上一个版本的情况下,还是可以输入刚刚被我们回退的那个版本的版本号,这样子就可以恢复如初了

4.4 本地操作-修改撤销

        前置:在readme.txt随意新加一行内容

        命令:git checkout 文件名称

        撤销工作区修改(删除工作区未添加的内容)

        命令:git reset head 文件名称

        撤销到工作区(把暂存区内容撤销到工作区)

        git checkout readme.txt的效果是工作区新修改的内容别撤销了 

        再手动把readme.txt最后一行加上,然后git add . 提交到暂存区

5 分支(必须掌握)

5.1 概述

        分支:几乎每一种版本控制系统都以某种形式维持分支,一个分支代表一条独立的开发线

        分支作用:使用分支意味着你可以从开发主线分离开来,然后在不影响主线的同时继续工作

5.2 分支创建与切换

        命令:git branch 分支名字

        分支的创建

        命令:git checkout 分支名字

        分支的切换

        命令:git branch

        分支查看

 

5.3 分支合并与删除

        命令:git merge 分支名字

        合并分支

        命令:git baranch -d 分支名

        删除分支 

6 远程仓库 

6.1git远程仓库概述

        本地仓库:在个人电脑中,用于存储个人提交记录和提交日志的

        远程仓库:是公外网中的一个仓库,主要用于存储个人或团队的提交记录和提交日志,团队开发也是远程仓库实现

        市面上常用的git支持的远程仓库主要有如下三个:github(面向开源和私有软件项目的托管平台,功能强大,但是在国外,速度一般),gitee(开源中国提出的基于git的代码托管平台,速度快),gitlab(gitlab基于git作为开源的代码托管平台,可以为你搭建一个web服务器,你就可以理解为为自己搭建了一个局域网内能够访问的服务器,也就是私服,保证代码安全性)

6.2gitee(码云)仓库注册创建

        1.自行前往官网注册登录

        2.创建仓库:点击右上方的+号    

 

6.3 远程仓库操作--关联

        复制第一个命令,git remote add origin xxx(xxx的位置要粘贴刚刚复制的链接)

        右键选择paste可以粘贴  

        到这就关联成功了

6.4 远程仓库操作--拉取

        拉取命令:git pull

        注意:得先将远程仓库的内容拉取到本地才能进行推送;首次拉取 git pull origin master --allow-unrelated-histories

       拉去成功可以在本地看见你在gitee上的其他文件

如果进入这个页面想要退出的话,输入:wq!(记得要输入冒号)

6.5 远程仓库操作--推送

        命令:git push

        注意1:首次推送使用命令git push -u orgin master

        注意2 :推送之前保证代码已经正常提交到本地仓库

6.6 远程仓库操作--克隆

步骤:

        1,新建一个文件夹

        2,输入git clone 指令(直接复制gitee的git clone指令)

7,idea集成git

7.1 集成

7.2在idea上拉git项目

        上面那个url是项目的地址,下面的目录是拉下来后存放在本地的位置

        填完之后直接clone就可以了,第一次使用会弹出输入线上git网站的用户名和密码。这样就完成了将项目拉下本地的操作了

7.3 将现有项目变成git管理的项目

接下来将当前项目交给git管理

         选中项目点击确定之后,发现文件变红,说明这个项目已经交给git进行管理了;同时右上方多了几个按钮。

        文件颜色:红色表示该文件未加入到版本控制中;白色表示与git同步,蓝色表示修改,绿色表示新创建

 

7.4 ADD 

        为了使得文件改变颜色,需要将红色文件添加到版本控制

        以下为方法1:

        以下为方法二:选中项目后右击

        自动把新文件添加到版本控制:file→setting→version control→confirmation→when files are created 选择add silently 

1.移除版本控制:

       Rollback ,移除版本控制,针对的未commit过的文件       

2.可以从文件的颜色上进行区分:

  • 绿色:未commit过的文件
  • 蓝色:commit过,修的文件

7.5 上传时忽略相同的配置文件

        大家的配置文件都差不多,没必要上传,可以安装插件忽略这些没必要上传的

         选第一个进行安装

未加载marketplace插件检查互联网连接并刷新“

        我是多刷新了几次,后来就又能用了

7.6 commit

        选中项目后右击,选中【git】的【提交目录】

         选择【提交】,左下角提示

7.6

切回项目

        随意修改文件试试

        发现变蓝了

        整个项目中ADD一次就可以(让红色的文件变成蓝色就可以),剩下的我们只需要commit(只要文件是蓝的,不用add,直接commit就可以) 

        提交方法二:选择那个✔就可以,填完备注就可以提交了

 7.7 比较版本间的差异

         选中最左下角的【git】可以查看有几个版本

        方法一:选中需要的文件或者项目,右击选中[git】,选择【与修订比较】 

 7.8版本回退撤销

        前置:多提交两个版本,方便演示

        修改之后不提交,点击圈起来的位置,就会出现回滚图标

        接下来展示版本的回退:

        选中需要还原回去的版本,右击选中将当前分支重置为此处

         软表示把撤回的东西都放在暂存区,混合是把撤回的东西都放在工作区,硬是把东西都删了

8 Idea工具--切换分支和推送(掌握)

 8.1 切换分支

        注意1:不能再master分支上书写代码,要在自己的分支开发,最后确定没有问题之后再将分支上的代码合并到master分支

        注意2:再切换其他分支的之前修改的代码必须先进行提交,否则当前分支的代码就不存在了

        右下角的master可以帮助我们管理分支

        选中branch1就是切换分支,选中之后再写代码就是在分支写代码,在分支选中的状态下提交就是分支提交代码

        这是master下的版本,可以跟branch1下的版本做个对比

8.2 合并master与branch1

         

        选择[将master合并到branch1]中,有冲突就解决冲突,没有冲突就push到远程

9 远程仓库gitlab

        注意:gitlab远程仓库只有组长有权限,组员没有权限操作,工作中由组长或项目经历进行操作管理,组长不要随意修改其他人的数据

        

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

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

相关文章

2024年steam好玩的新游:《哈迪斯2》《雨中冒险: 回归》等

今天已经有不少新游上线,下面为大家整理了2024年好玩的steam游戏,一起来看看。 2024值得一玩的新游 1、《哈迪斯2》 哈迪斯2(Hades II)是Supergiant Games继其广受好评的作品《哈迪斯》之后开发的一款动作角色扮演游戏。 在《哈…

纯净IP的判断标准及代理深度分析

今天,我们测评团队将带大家深入探讨纯净IP的判断标准,并通过实测数据,对极光静态代理与独享云创这两家服务商进行深度剖析,为你揭秘如何挑选那些真正值得信赖的IP代理服务。 一、纯净IP的判断标准 历史记录检查:一个好…

@Resource注解 和 @Autowired 注解的区别!

Resource注解 和 Autowired 注解的区别! 前言: 实习时候第一次拉取了企业级代码(微服务),发现基本上都是Resource注解,自己之前平时没仔细思考 就是按照自己的习惯用的Autowired,平时开发也是单体架构的系统. 理解: Autowired Autowired是spring提供的一个注解,默认是根据类型…

[RL] 马尔可夫决策过程基础

文章结构 目录 一、马尔可夫过程 马尔可夫性质 二、马尔可夫奖励过程 回报(Return) 贝尔曼方程(Bellman equation) 贝尔曼方程解析解 蒙特卡洛方法​ 马尔可夫决策过程​ MDP和马尔可夫过程/马尔可夫奖励过程的区别 马…

循环机制(event loop)之宏任务和微任务

一、前言 js任务分为同步任务和异步任务,异步任务又分为宏任务和微任务,其中异步任务属于耗时的任务。 二、宏任务和微任务有哪些? 宏任务:整体代码script、setTimeout、setInterval、setImmediate(Node.js&#xff…

nginx conf.d 模块化配置

文章目录 前言nginx conf.d 模块化配置1. 概述2. 优势3. 配置 前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差,实在白嫖的话&#xff0c…

关卡1-2:Python关卡

关卡1-2:Python关卡 一、python实现wordcount二、通过本地VSCODE连接internStudio与debug2.1使用本地的VSCODE连接InternStudio2.2 debug插件安装2.3 debug进行时2.3.1 代码准备2.3.2 选择python解释器2.3.3 打断点 一、python实现wordcount 采用python实现经典任务…

【C++】红黑树模拟实现STL库中的map与set

目录 改造红黑树 红黑树的迭代器 map的模拟实现 set的模拟实现 在上一篇博客中&#xff0c;我们实现了红黑树&#xff0c;但是红黑树节点中的值是pair<K,V> _kv形式&#xff0c;这种红黑树适用于map的底层&#xff0c;那么如果我们想要红黑树节点中的值是key的形式&a…

神经网络处理器模拟器的一点思考

一 神经网络处理器 通常基于FPGA的神经网络处理器进行部署某种网络&#xff0c;考虑的因素较多&#xff0c;具体包括网络模型的不同&#xff0c;涵盖不同的算子、激活函数、调度策略等等&#xff1b;具体硬件实现&#xff0c;涉及神经网络处理器并行度、硬件资源消耗&#xff0…

【C++高阶】哈希函数底层原理探索:从算法设计到实现优化

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ ⏩收录专栏⏪&#xff1a;C “ 登神长阶 ” &#x1f921;往期回顾&#x1f921;&#xff1a;模拟实现 map与set &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀哈希 &#x1f4da;1. unord…

MinerU、Magic-PDF、Magic-Doc

文章目录 一、关于 MinerU二、Magic-PDF1、简介2、项目全景3、流程图4、子模块仓库 三、Magic-PDF 上手指南1、配置要求2、安装配置1. 安装Magic-PDF2. 下载模型权重文件3. 拷贝配置文件并进行配置4. 使用CUDA或MPS加速推理CUDAMPS 3、使用说明1) 通过命令行使用直接使用更多用…

鑫创SSS1700USB音频桥芯片USB转IIS芯片

鑫创SSS1700支持IIC初始外部编&#xff08;EEPROM选项),两线串行总线&#xff08;I2C总线&#xff09;用于外部MCU控制整个EEPROM空间可以通过MCU访问用于主机控制同步的USB HID外部串行EEPROM&#xff08;24C02~24C16&#xff09;接口&#xff0c;用于客户特定的USB视频、PID、…

有空多刷刷算法题:回溯理论基础、leecode-77:组合、leecode:组合总和 III

回溯算法 一、理论基础 参考代码随想录&#xff0c;仅作记录学习之用 回溯是递归的副产品&#xff0c;只要有递归就会有回溯因为回溯的本质是穷举&#xff0c;穷举所有可能&#xff0c;然后选出我们想要的答案&#xff0c;如果想让回溯法⾼效⼀些&#xff0c;可以加⼀些剪枝…

华为OD机试2024年C卷D卷 - 构成指定长度字符串的个数/字符串拼接(Java)

华为OD机试&#xff08;C卷D卷&#xff09;2024真题目录 题目描述&#xff1a;构成指定长度字符串的个数 (本题分值200) 给定 M&#xff08;0 < M ≤ 30&#xff09;个字符&#xff08;a-z&#xff09;&#xff0c;从中取出任意字符&#xff08;每个字符只能用一次&#x…

PostgreSql创建触发器并增加IF判断条件

在 PostgreSQL 中&#xff0c;可以使用触发器&#xff08;Trigger&#xff09;来在表上定义自定义的插入&#xff08;INSERT&#xff09;、更新&#xff08;UPDATE&#xff09;和删除&#xff08;DELETE&#xff09;操作的行为。触发器是与表相关联的特殊函数&#xff0c;它们在…

docker的学习(二):docker常用的高级技术总结

简介 docker的一些知识点的总结 UnionFS 分层&#xff0c;轻量级&#xff0c;高性能的文件系统&#xff0c;支持一层层的叠加功能来修改文件系统。 一次同时加载多个文件系统&#xff0c;把各层文件系统叠加起来&#xff0c;最终文件系统会包含所有底层的文件和目录&#xf…

【java SE语法篇】1.运算符

目录 1. 运算符和表达式2. 算数运算符3. 隐式转换4. 强制转换5. 自增自减运算符6. 赋值运算符7. 扩展运算符8. 关系运算符9. 逻辑运算符9.1 & 和 | 的使用&#xff1a;9.2 ^&#xff08;异或&#xff09;的使用&#xff1a;9.3 !&#xff08;取反&#xff09;的使用&#x…

2024年技校大数据实验室建设及大数据实训平台整体解决方案

随着信息技术的迅猛发展&#xff0c;大数据已成为推动产业升级和社会进步的重要力量。为适应市场需求&#xff0c;培养高素质的大数据技术人才&#xff0c;技校作为职业教育的重要阵地&#xff0c;亟需加强大数据实验室的建设与实训平台的打造。本方案旨在提出一套全面、可行的…

如何制作u盘启动盘_制作U盘启动盘详细图文教程

如何制作u盘启动盘&#xff1f;一个U盘如果不做成启动盘的话&#xff0c;就只能当存储用。如果一个U盘做成启动盘的话&#xff0c;可以通过U盘启动进入PE&#xff0c;我们就可以对电脑进行重装系统或分区等一些操作使用了&#xff0c;这个主要用于电脑需要救急的情况下使用。用…

jmeter录制脚本做压力测试

1.录制 第一步 设置浏览器代理&#xff0c;我用的火狐。谷歌、IE也是都可以。 我把端口号改成8082了&#xff0c;这个无所谓的&#xff0c;只要不冲突就可以。 紧接着要往浏览器里添加证书。直接搜索证书。把jmeter的证书导入浏览器。 2.在jmeter里设置 添加线程组、http代…