入职Java,不会git被开除了。。。
入职Java,不会git被开除了。。。
文章目录
- 入职Java,不会git被开除了。。。
- 前言
- 一、Git是什么?
- 二、Git的核心概念
- 三、Git的工作流程
- 四、Git的常用命令
- 五、总结
🌈你好呀!我是 山顶风景独好
💝欢迎来到我的博客,很高兴能够在这里和您见面!
💝希望您在这里可以感受到一份轻松愉快的氛围!
💝不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
🚀 欢迎一起踏上探险之旅,挖掘无限可能,共同成长!
前言
- 在一个繁华的都市中,李华怀揣着对Java编程的热爱和憧憬,成功应聘了一家知名的科技公司。他对于即将到来的职场生活充满了期待,希望能够在那里施展自己的才华,实现自己的职业梦想。
- 然而,就在他入职的第一天,却发生了一件让他意想不到的事情。公司为了让他更快地融入团队,安排了一场技术分享会,要求他和其他新入职的同事一起参与。在分享会上,团队领导提到了Git这个重要的版本控制系统,并询问大家是否熟悉其操作。
- 李华顿时感到一阵紧张,因为他之前并没有接触过Git。虽然他在Java编程方面有着扎实的基础,但对于版本控制这个领域却是一片空白。他试图掩饰自己的不安,但内心却充满了忐忑。
- 分享会结束后,团队领导私下里找到李华,希望他能够在短时间内掌握Git的基本操作,因为公司非常注重团队协作和版本控制。李华虽然答应了,但内心却感到无比的压力。
- 在接下来的几天里,李华拼命地学习Git的相关知识,但由于缺乏实践经验,他始终无法熟练掌握。每当他试图将代码提交到仓库时,总会遇到各种各样的问题。这让他感到非常沮丧和焦虑。
- 有一天,团队领导突然宣布要进行一次代码审查,并要求每个人都将自己的代码提交到Git仓库中。李华感到自己的末日就要来临了,因为他知道自己根本无法在规定的时间内完成这个任务。
- 果然,在提交代码的过程中,李华遇到了一个严重的问题,他的代码无法被正确提交到仓库中。他尝试了各种方法,但都没有成功。这时,团队领导走了过来,询问他的进展情况。
- 李华无奈地坦白了自己的困境,并表达了自己的愧疚和不安。他本以为会遭到严厉的批评或指责,但出乎意料的是,团队领导并没有责怪他,而是耐心地为他讲解了Git的基本操作和注意事项。
- 在团队领导的帮助下,李华终于成功地将代码提交到了Git仓库中。虽然这次经历让他感到非常尴尬和羞愧,但他也深刻地认识到了自己的不足和需要改进的地方。
- 然而,不幸的是,由于李华在Git方面的技能不足已经严重影响到了团队的工作效率和项目进度。在经过一段时间的观察和评估后,公司最终做出了一个艰难的决定:将李华解雇。
- 虽然这个结果让李华感到非常失落和沮丧,但他也意识到这是一个重要的教训。他明白了在职场中不仅要掌握专业技能,还要具备快速学习和适应新环境的能力。他决定在离开这家公司之前,认真反思自己的不足并努力学习Git和其他相关技术知识,为将来的职场生涯打下坚实的基础。
一、Git是什么?
Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。它最初由Linus Torvalds为了管理Linux内核的开发而设计,后来被广大开发者所采用并广受欢迎。Git的核心是一个数据库,它保存了项目的每一次更改,并且可以通过这些更改来创建分支、合并代码、查看历史记录等。
二、Git的核心概念
- 仓库(Repository)
Git仓库是存储项目所有版本历史记录的地方。它包含了项目的所有文件、目录、提交信息、分支、标签等。Git仓库可以位于本地计算机上,也可以托管在远程服务器上,如GitHub、GitLab等。- 工作区(Working Directory)
工作区是开发者进行日常开发的地方,它包含了项目的实际文件。当开发者从Git仓库中检出(checkout)一个分支时,该分支上的文件会被复制到工作区。开发者在工作区中对文件进行编辑、添加或删除等操作。- 暂存区(Staging Area 或 Index)
暂存区是Git用来准备提交的一个区域。当开发者对工作区的文件进行修改后,这些修改并不会立即被提交到Git仓库中。相反,开发者需要将修改的文件添加到暂存区,以便在后续的提交中包含这些更改。通过git add命令,开发者可以将工作区的文件添加到暂存区。- 提交(Commit)
提交是Git中的基本操作,它代表了一次版本的保存记录。每次提交会生成一个唯一的SHA-1哈希值,用于标识该次提交。提交包含了一条提交信息,记录了该次提交的目的、作者、时间等信息,以及指向上一次提交的指针。提交操作将暂存区的更改打包成一个快照,并将其添加到Git仓库的历史记录中。通过git commit命令,开发者可以将暂存区的更改提交到Git仓库中。- 分支(Branch)
Git中的分支用于同时进行多个任务、多个版本的开发。主分支一般是master或main,用于保存最终的稳定版本。开发者可以创建新的分支来开发新功能或修复bug,而不会干扰到其他分支的开发工作。通过git branch命令,开发者可以查看、创建和删除分支。通过git checkout命令,开发者可以切换到不同的分支进行开发工作。- 合并(Merge)
合并是将一个分支的修改内容合并到另一个分支的过程。当一个分支的开发完成或需要与其他分支(如主分支)同步时,可以通过合并操作将其修改内容合并到目标分支中。Git使用三方合并(three-way merge)算法来自动合并代码冲突。通过git merge命令,开发者可以将一个分支的更改合并到当前分支中。- 分布式版本控制
Git是一个分布式版本控制系统,这意味着每个开发者都可以在自己的本地计算机上拥有一个完整的Git仓库。本地仓库包含了项目的所有历史记录、分支、标签等。开发者可以在本地仓库上进行开发工作,并与其他开发者的本地仓库进行同步。通过git clone命令,开发者可以从远程仓库克隆一个完整的项目到本地计算机上。通过git push和git pull命令,开发者可以将本地的更改推送到远程仓库,或从远程仓库拉取最新的更改。
三、Git的工作流程
- 初始化仓库:使用git init命令创建一个新的Git仓库,或者在已有的代码库上执行该命令将其转换为Git仓库。
- 添加文件:使用git add命令将文件添加到暂存区(staging area)。暂存区是Git用来准备提交的一个区域。
- 提交更改:使用git commit命令将暂存区的更改提交到Git仓库中。每次提交都会生成一个唯一的哈希值作为标识符。
- 查看历史记录:使用git log命令查看项目的提交历史记录。这可以帮助我们了解项目的变更情况,以及谁在什么时间做了哪些更改。
- 创建分支:使用git branch命令创建新的分支。分支是Git用来支持并行开发的一种机制。我们可以在不同的分支上同时进行不同的开发工作,而不会相互干扰。
- 切换分支:使用git checkout命令切换到不同的分支。这可以帮助我们在不同的开发任务之间快速切换。
- 合并分支:当我们在一个分支上完成开发工作后,可以使用git merge命令将其合并到主分支或其他分支上。这可以帮助我们将不同开发者的代码整合在一起,形成完整的项目。
四、Git的常用命令
- 初始化与配置
- git init: 初始化一个新的Git仓库。
- git config: 获取和设置仓库或全局选项。
- 克隆与添加
- git clone: 克隆一个仓库到一个新目录。
- git add: 添加文件内容到索引。
- 提交与同步
- git commit: 记录更改到仓库。
- git push: 推送本地更改到远程仓库。
- git pull: 从远程仓库获取并集成更改。
- 分支与合并
- git branch: 列出、创建或删除分支。
- git checkout: 切换到指定分支或恢复工作区文件。
- git merge: 合并一个或多个分支到当前分支。
- 查看与比较
- git status: 显示工作目录和暂存区的状态。
- git log: 显示提交历史。
- git diff: 显示尚未暂存的更改。
- git show: 显示各种类型的对象。
- 撤销与恢复
- git reset: 重置当前HEAD到指定状态。
- git revert: 创建一个新的提交来撤销某次提交。
- git rm: 从工作区和索引中删除文件。
- 远程仓库
- git remote: 管理远程仓库。
- git fetch: 从另一个仓库或本地分支获取分支与/或标签。
- 标签
- git tag: 列出、创建或删除标签。
- 其他
- git stash: 保存和恢复工作进度。
- git blame: 显示文件每一行的最后修改信息。
- git show-branch: 显示分支列表及其提交。
- git cherry-pick: 选择一个提交引入当前分支。
- 注意事项
- –force 或 -f 标志:一些命令(如 git push)允许您使用此标志来强制执行操作,但请小心使用,因为它可能会覆盖远程仓库上的更改。
- -u 或 --set-upstream 标志:与远程分支建立关联,以便后续推送和拉取。
五、总结
Git作为一款优秀的版本控制系统,具有高效、灵活和分布式的特点。通过学习和掌握Git的基本命令和工作原理,我们可以更好地管理自己的代码库,提高开发效率和质量。同时,Git也是团队协作的重要工具之一,它可以帮助我们更好地与他人协作开发、共享代码和解决问题。
相关文章:
入职Java,不会git被开除了。。。
入职Java,不会git被开除了。。。 文章目录 入职Java,不会git被开除了。。。前言一、Git是什么?二、Git的核心概念三、Git的工作流程四、Git的常用命令五、总结 🌈你好呀!我是 山顶风景独好 💝欢迎来到我的博…...
Mysql 隔离级别
MySQL的事务隔离级别是指在处理并发事务时,为保证数据的一致性和事务的独立性,数据库系统提供的不同级别控制策略。根据ACID特性中的隔离性(Isolation),MySQL支持四种标准的事务隔离级别,每种级别有不同的并…...

每日一学—K邻算法:在风险传导中的创新应用与实践价值
文章目录 📋 前言🎯 K邻算法的实践意义🎯 创新应用与案例分析🔥 参与方式 📋 前言 在当今工业领域,图思维方式与图数据技术的应用日益广泛,成为图数据探索、挖掘与应用的坚实基础。本文旨在分享…...

基于Springboot的校园疫情防控信息管理系统(有报告)。Javaee项目,springboot项目。
演示视频: 基于Springboot的校园疫情防控信息管理系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层…...

【C++】内联函数、auto、范围for
文章目录 1.内联函数2.auto关键字2.1auto简介2.2auto的注意事项2.3auto不能推导的场景 3.基于范围的for循环(C11)4.指针空值nullptr(C11) 1.内联函数 概念: 以inline修饰的函数叫做内联函数,编译时C编译器会在调用内联函数的地方展开,没有函…...

Day 46 139.单词拆分
单词拆分 给定一个非空字符串 s 和一个包含非空单词的列表 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。 说明: 拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。 示例 1: 输入: s “leet…...
streamlit报错:AxiosError: Request failed with status code 403
解决办法: 步骤一:创建config.toml vi ~/.streamlit/config.toml 步骤二:加入以下内容 [server] enableXsrfProtection false enableCORS false步骤三:重新启动你的streamlit网页...
java基础教学 |Java Stream API详解
Java Stream API 是Java 8引入的一个重要特性,它为集合对象提供了一种新的计算模型,使得开发者能够以声明性的方式处理数据集合。Stream API 不仅提高了代码的可读性和简洁性,还极大地优化了并行处理能力,让复杂的集合操作变得高效…...
0.0和0.00竟然不相等!!!BigDecimal别用错了比较方式
对于BigDecimal字段,可以使用compareTo()方法和equals()方法进行比较。但是要注意这两种方法的作用有所不同。一般都应该使用BigDecimal比较值,而不是使用经常用到的equals方法比较内容。 1.compareTo()方法 是用来比较两个BigDecimal对象的大小关系。…...

【多模态】30、Monkey | 支持大尺寸图像输入的多任务多模态大模型
文章目录 一、背景二、方法2.1 Enhancing Input Resolution2.2 Multi-level Description Generation2.3 Multi-task Training 三、效果3.1 Image Caption3.2 General VQA3.3 Scene Text-centric VQA3.4 Document-oriented VQA3.5 消融实验3.6 可视化 论文:Monkey : …...

PHP黑魔法之md5绕过
php本身是一种弱语言,这个特性决定了它的两个特点: 输入的参数都是当作字符串处理变量类型不需要声明,大部分时候都是通过函数进行类型转化php中的判断有两种: 松散比较:只需要值相同即可,类型不必相同,不通类型比较会先转化为同类型,比如全数字字符串和数字比较,会比…...

【适用全主题】WordPress原创插件:弹窗通知插件 支持内容自定义
内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 适用于所有WordPress主题的弹窗插件 一款WordPress原创插件:弹窗通知插件 支持内容自定义 二、效果展示 1.部分代码 代码如下(示例)࿱…...

定时器的理论和使用
文章目录 一、定时器理论1.1定时器创建和使用 二、定时器实践2.1周期触发定时器2.2按键消抖 一、定时器理论 定时器是一种允许在特定时间间隔后或在将来的某个时间点调用回调函数的机制。对于需要周期性任务或延迟执行任务的嵌入式应用程序特别有用。 软件定时器: …...

【架构-17】通信系统架构设计理论
通信系统网络架构 1. 局域网网络架构 拓扑结构:星型、总线型、环型、树型。 网络架构:单核心架构(结构简单,地理范围受限)、双核心架构(网络拓扑结构可靠,投资较单核高)、环型架构…...

网络中的基本概念
网络初识 局域网:把若干个电脑组成在一起,通过路由器进行组网。 广域网:把局域网进一步的连接,构成更复杂的网络体系。 IP地址:区分主机。 端口号:区分主机上不同的程序。 协议:是一种约定&…...

手撸XXL-JOB(二)——定时任务管理
在上一节中,我们介绍了SpringBoot中关于定时任务的执行方式,以及ScheduledExecutorService接口提供的定时任务执行方法。假设我们现在要写类似XXL-JOB这样的任务调度平台,那么,对于任务的管理,是尤为重要的。接下来我们…...

DEV--C++小游戏(吃星星(0.2))
目录 吃星星(0.2) 简介 本次更新 分部代码 头文件(增) 命名空间变量(增) 副函数(新,增) 清屏函数 打印地图函数(增) 移动函数 选择颜色…...
Lua 协程池
协程池 在 使用 Lua 协程模拟 Golang 的 go defer 编程模式 中介绍了 Lua 协程的使用,模仿 golang 封装了下 还可以做进一步的优化 原来的 go 函数是这样实现的: function go(_co_task)local co coroutine.create(function(_co_wrap)_co_task(_co_w…...

[Linux][网络][协议技术][DNS][ICMP][ping][traceroute][NAT]详细讲解
目录 1.DNS1.DNS背景2.域名简介 2.ICMP协议1.ICMP功能2.ICMP两类报文 3.ping命令4.traceroute5.NAT技术1.NAT技术背景2.NAT IP转换过程3.静态地址NAT && 动态地址NAT4.网络地址端口转换NAPT5.NAT技术的缺陷6.NAT和代理服务器 6.总结1.数据链路层2.网络层3.传输层4.应用…...

Android 集成Bugly完成线上的异常Exception收集及处理
文章目录 (一)添加产品APP(二)集成SDK(三)参数配置权限混淆 (四)初始化 (一)添加产品APP 一)在个人头像 -> 我的头像 -> 新建产品 二&…...

接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...

华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...