代码管理工具知多少?来看看Git怎么用吧

news2025/8/3 13:12:33

一. 代码管理工具简介

说到代码工具,许多工作了的小伙伴一定很有发言权。因为我们在实际开发环境中,就代码的复杂度和逻辑度,对于开发工程师来说,都是极具挑战性的。如果单靠个人来完成单个项目的整体开发,那无疑是难上加难,因此就有个词孕育而生了——“协同开发”。也就是说,我们有许多个开发工程师,有的负责项目的这个模块,有的负责项目的那个模块。最后当我们将各自模块完成后,将其提交到远程,并进行代码合并。这个协同工具不仅减少了我们项目开发的难度,也加快了项目的开发进度。

二. 代码管理工具

那既然大家现在知道了代码管理工具的由来,接下来我们就再来了解几个比较著名的代码管理工具吧。

1. CVS

cvs(Concurrent Versions System)是代码管理工具诞生以来,最早出现的一名成员了。不过可惜的是拥有悠久历史的它,不得不在当前的时代浪潮下安静的退出舞台。cvs使用Client/Server架构,项目小组的每一位开发人员都会去记录到一个CVS Server档案库中,当小组项目开发人员编辑完自己的CVS Server后,会将其上传到一个公共的CVS Server档案库中。

2. SVN

SVN(subversion),据悉SVN的作者,实际上就是以前 CVS中的一个开发者,后来出来自己去另开发写了个SVN。SVN后台替代了CVS(比例相对来说 比较少了)。SVN安装后,会有公共地址VIsuall SVN Server的url。导入后会在其项目文件下创建.svn,用户开发小组在修改编写好自己所负责的模块后,将代码保存到自己的.svn中,再通过.svn这个文件到SVN Server提交上传和拉取文件。

3. Git

GIt是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。目前也是最流行的一个代码管理工具,市场上大部分的公司在代码管理工具选择上都对其独有的青睐。Git在安装后,也是通过url去找到远程库,并在本地生成一个.git本地库。项目小组开发人员在开发工具上配置好git后,在负责对应模块编写开发完成后,可将其提交到本地库。然后将远程项目先拉取一次,拉取时,可选择分支,再通过提交到本地库信息,将其推送到远程所选对应分支中。

三. Git的优点

在了解完当前一些主流的代码管理工具后,小伙伴们就会想到一个问题,各种代码管理工具它们的工作流程大体都很相同,没有太大的变化,那我们为什么会去选择Git呢?它的好处有哪些呢?

首先,最主要的就是Git是分布式的,它有一个GitFlow工作流,也是现在大部分企业对其独有青睐的原因:

  1. 在定义时,默认有一个主分支(master),这个分支在创建后一般都是不会动的,只有代码最终合并时才会进行使用;

  2. 第二个就是我们的开发分支(develop),所有人提交代码的分支,这个分支是我们日常项目开发中最为常用的;

  3. 第三个就是我们的测试分支(release),这个分支就是项目的测试分支。develop上开发好代码之后会基于develop克隆一个release分支,这个release分支最终用来给测试人员用,专门测试用的;

  4. 第四个就是我们的bug修复分支(bugfix),项目开发完成之后,部署到公网之后,我们的项目如果出现bug,那么这个时候,就会基于我们的master分支克隆一个bugfix-v1.0分支,来进行bug的修改。修改完成之后再合并到release分支进行测试,测试完成再合并到develop分支。develop没有问题,合并到master,这样最终实现项目的迭代。清晰定义的各类分支,有效的解决了项目中的冲突和迭代问题,对于bug的处理也能够有及时有效的应对措施。

其次,Git是将内容按元数据方式存储,而SVN和CVS则是按文件。Git目录是处于个人机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签,分支,版本记录等。

四. Git的使用

接下来我们就以IDEA为例,给大家讲解Git的具体操作。

1. 创建本地库

 2. 让Git进行管理

 3. 提交本地库

4. 先将远程代码拉取(pull)下来一次,再提交(commit)

 以上就是壹哥给大家讲解的Git使用教程,现在你学会了吗?如果你想要获取更多的干货内容,可以在评论区给壹哥留言哦!!!

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

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

相关文章

baostock均线数据怎么描出图形表示?

baostock主要是用量化交易者的一个开放数据的源头系统,其功能可以提供大量准确、完整的证券历史行情数据、上市公司财务数据等服务。利用python API获取证券数据信息,满足量化交易投资者、数量金融爱好者、计量经济从业者数据需求等,同样&…

重点,一文掌握ReentrantLock加解锁原理!|原创

本文详细讲解了 ReentrantLock 加锁和释放锁的原理,以及和 Synchronized 的对比。本文较长,建议收藏!点击上方“后端开发技术”,选择“设为星标” ,优质资源及时送达简要总结 ReentrantLock实现原理:volati…

Arduino ESP32使用U3115S芯片控制H桥驱动有刷直流电机

Arduino ESP32实现互补PWM输出 问题提出半桥驱动电路必须是PWM互补输入才能工作Arduino ESP32的互补PWM控制问题提出 直流有刷电机控制使用U3115S芯片。芯片是电压高达300V的半H桥驱动电路,管脚说明: NumberSymbolDescription1VCC低侧固定逻辑电源输入…

牛客网——verilog练习题思路汇总

目录 基础语法 VL1 四选一多路器 VL2 异步复位的串联T触发器 VL3 奇偶校验 VL4 移位运算与乘法 VL5 位拆分与运算 VL6 多功能数据处理器 VL7 求两个数的差值 VL8 使用generate…for语句简化代码 VL9 使用子模块实现三输入数的大小比较 VL10 使用函数实现数据大小端转…

智慧城市建设的原则及规划目标

一、建设原则 智慧城市建设过程中必须把握以下原则: (一) 遵循市信息化建设总体规划与发展框架。遵循 “十二五” 信息化规划确定的“紧紧围绕国家西部大开发战略目标,强化信息技术和信息化在我市加快推进新型工业化进程中的战略…

数据库周期表整体设计方案

这是学习笔记的第 2442篇文章数据库周期表是我们自定义的名称,从数据视角来说,通常会有三类数据表:字典表,状态表,日志表,其中周期表从定位上更侧重于日志表。为什么叫周期表,主要是因为日志数据…

看着2022年世界杯,我无比怀念98世界杯

作者:朱金灿 来源:clever101的专栏 为什么大多数人学不会人工智能编程?>>> 断断续续看了2022年世界杯部分比赛,我无比怀念1998年世界杯!该文权当本人的一点回忆文字,没有经过严谨认证&#xff0…

2023年第三届智能制造与自动化前沿国际会议(CFIMA 2023)

2023年第三届智能制造与自动化前沿国际会议(CFIMA 2023) 重要信息 会议网址:www.cfima.org 会议时间:2023年6月9-11日 召开地点:中国大理 截稿时间:2023年4月20日 录用通知:投稿后2周内 收录检索:EI,…

IDEA创建父子项目

一、搭建父项目 创建第一个maven项目作为父项目 创建完之后建议删掉src文件夹 pom.xml <packaging>POM</packaging><!--依赖版本的锁定--><properties><java.version>1.8</java.version><project.build.sourceEncoding>UTF-8</pr…

Linux-Nginx前端项目部署

目录 一、Nginx简介 负载均衡 动静分离 二、Nginx安装 Tomcat负载均衡 准备2个tomcat 修改此三处 修改后保存 启动两个Tomcat 修改Tomcat主界面​编辑 Nginx配置 查看nginx.conf配置 添加/更改配置​编辑 重启Nginx服务&#xff0c;让配置生效 出现权限问题 测试N…

计算机组成原理4小时速成:I/O系统,IO指令,编址方式,串行并行,程序查询传送,中断程序传送,DMA传送,接口组成

计算机组成原理4小时速成&#xff1a;I/O系统&#xff0c;IO指令&#xff0c;编址方式&#xff0c;串行并行&#xff0c;程序查询传送&#xff0c;中断程序传送&#xff0c;DMA传送&#xff0c;接口组成 2022找工作是学历、能力和运气的超强结合体&#xff0c;遇到寒冬&#x…

verilog generate

Verilog 生成块generate块允许乘以模块实例或执行任何模块的条件实例化。它提供了基于 Verilog 参数构建设计的能力。当需要多次重复相同的操作或模块实例&#xff0c;或者必须根据给定的 Verilog 参数有条件地包含某些代码时&#xff0c;这些语句特别方便。generate块不能包含…

centos7 clamav 杀毒软件安装

壹&#xff1a;编译安装 1&#xff0c;官网获取源码包 clamav官网地址 2&#xff0c;创建clamav 用户和存放病毒库目录 a, 创建clamav 用户和用户组 groupadd clamav && useradd -g clamav clamav && id clamavb,日志存放目录 mkdir -p /henan/clamav/lo…

Spring中的ApplicationContext所体现出来的工厂模式

Spring初体验 通常我们写代码时&#xff0c;先定义一个Class&#xff0c;然后再别的地方实例化&#xff0c;再进行调用&#xff0c;比如下边的Hello World的例子&#xff0c;类Hello有一个say()方法&#xff0c;用于打印出“Hello World”的字符串&#xff0c;另一个类App&…

python和R绘制箱线图+抖动点

python和R绘制箱线图抖动点 散点箱线图 IPCC AR6 https://www.ipcc.ch/ 通过散点展示数据的直观分布 x轴刻度标签如果是“连续”数据&#xff0c;可添加渐变背景。通过渐变来体现升温幅度&#xff0c;美观形象。 python版本&#xff1a; 先手搓数据&#xff1a; import pan…

【构建ML驱动的应用程序】第 11 章 :监控和更新模型

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…

c++11 unique_lock 使用

我们知道c11 提供了很多的类模板供我们使用&#xff0c;其中就有 lock_guard&#xff0c;这个用法也很简单&#xff0c;像这样&#xff1a; std::mutex m_mutex; std::lock_guard<std::mutex> guard(m_mutex); mutex 的 lock 和 unlock 完全是自动的&#xff0c;无需我…

新鲜出炉|基于深度学习的运维日志领域新进展

作者&#xff1a;云智慧算法工程师 Hugo Guo 运维日志领域研究方向主要包含异常日志检测、日志模式解析、日志内容分类、日志告警等。本篇文章介绍了热门异常检测模型 DeepLog、A2Log 等模型&#xff0c;以及云智慧自研模型 Translog 等。与此同时&#xff0c;在文章最后介绍了…

springboot自定义starter实践

创建一个spring项目 仿照spring的规范&#xff0c;artifact命名为xxx-spring-boot-starter 按需添加必要的依赖 这里只作为测试&#xff0c;就按最低的需求来只勾选如下三个 lombok、spring-boot-configuration-processor、spring-boot-autoconfigure 默认生成的项目结构如下…

使用HuggingFace实现 DiffEdit论文的掩码引导语义图像编辑

在本文中&#xff0c;我们将实现Meta AI和Sorbonne Universite的研究人员最近发表的一篇名为DIFFEDIT的论文。对于那些熟悉稳定扩散过程或者想了解DiffEdit是如何工作的人来说&#xff0c;这篇文章将对你有所帮助。 什么是DiffEdit? 简单地说&#xff0c;可以将DiffEdit方法…