【SVN】 代码版本管理工具使用步骤以及全局忽略不需要提交的文件夹

2023年,第36周。给自己一个目标,然后坚持总会有收货,不信你试试!
SVN是Subversion的简称,是一个开源的版本控制系统,用于管理软件开发过程中的代码版本和文件变更。
它提供了跟踪文件修改、协同开发、版本回滚、分支和合并等功能,帮助团队成员共享和管理项目代码。

目录

  • 一、代码管理工具
    • 1、Git
    • 2、SVN(Subversion)
    • 3、Mercurial
    • 4、Perforce
    • 5、Team Foundation Version Control(TFVC)
    • 6、Apache Subversion(SVN)
  • 二、SVN和Git区别
    • 1、分布式 vs 集中式
    • 2、性能
    • 3、分支管理
    • 4、历史记录
    • 5、分布式开发与协作
  • 三、SVN使用步骤
    • 3.1、什么是SVN
    • 3.2、使用步骤
    • 3.3、文件夹全局忽略

一、代码管理工具

简单整理下,一些常见的代码管理工具,用的比较多的还是git和svn
在这里插入图片描述

1、Git

Git是目前最流行的分布式版本控制系统,具备强大的分支和合并功能,适用于个人开发和团队协作。

2、SVN(Subversion)

SVN是一种集中式版本控制系统,通过中央仓库来管理和协调团队的代码版本,适用于中小型项目。

3、Mercurial

Mercurial是另一种分布式版本控制系统,与Git类似,但在一些细节和工作流上有所不同。

4、Perforce

Perforce是一种商业版本控制系统,广泛用于大型软件开发项目,具备高度可定制性和性能优势。

5、Team Foundation Version Control(TFVC)

TFVC是微软的集中式版本控制系统,常用于使用Visual Studio进行开发的团队。

6、Apache Subversion(SVN)

SVN的Apache项目版本,提供了更多的改进和增强。

这只是一小部分代码管理工具的例子,每个工具都有其特点和适用场景。
选择最适合你的项目和团队的工具,可以根据工作需求和团队偏好来做出决策。
根据博主所接触到的开发团队里,之前svn用的比较多,后面git开始用的多了。

二、SVN和Git区别

SVN(Subversion)和Git是两种常用的版本控制系统,它们在设计和使用方式上有一些重要区别。
在这里插入图片描述

1、分布式 vs 集中式

Git是一种分布式版本控制系统,每个本地工作副本都是完整的代码仓库,具备完整的历史记录和版本信息。而SVN是一种集中式版本控制系统,所有的代码和版本信息都存储在中央仓库中,开发者需要通过网络连接来访问中央仓库。

2、性能

由于Git是分布式的,大部分操作可以在本地完成,因此在执行速度上通常比SVN更快。Git使用了强大的分支合并算法,具备高效的分支和合并功能,而SVN的分支和合并相对较为复杂。

3、分支管理

Git在分支管理方面非常灵活,可以轻松地创建、切换和合并分支,支持多层次、并行开发。而SVN的分支在操作上相对繁琐,需要手动创建分支和进行合并操作。

4、历史记录

Git保存完整的代码历史记录,包括每次提交的快照,可以更精确地追踪每个修改,方便查看、回滚和比较不同版本。SVN只保存文件的差异补丁,并不保存完整的文件快照。

5、分布式开发与协作

Git的分布式特性使得团队成员可以在本地独立进行开发和提交,只需在需要时与中央仓库同步。这种方式适合分布式团队和远程协作。SVN的集中式模式要求开发者对中央仓库有更频繁的依赖。

根据具体的需求和团队情况,选择适合自己的版本控制系统是很重要的。
Git在速度、分支管理和分布式协作方面有优势,而SVN在简单性和集中式控制方面表现出色。

三、SVN使用步骤

3.1、什么是SVN

SVN是Subversion的简称,是一个开源的版本控制系统,用于管理软件开发过程中的代码版本和文件变更。
它提供了跟踪文件修改、协同开发、版本回滚、分支和合并等功能,帮助团队成员共享和管理项目代码。

SVN使用集中式版本控制系统(Centralized Version Control System,CVCS)的工作模式。在SVN中,项目代码和历史版本都保存在中央仓库(Repository)中。
开发者可以从仓库中进行代码检出(Checkout)到本地,对代码进行修改,然后提交(Commit)到仓库。SVN将自动跟踪和记录每个提交的变更,因此可以轻松回退到先前的版本或者比较不同版本之间的差异。

SVN还支持分支(Branches)和合并(Merge)操作,使得团队成员可以在独立的代码分支上进行开发,并将修改的代码合并到主干(Trunk)中。
这样可以避免团队成员之间的冲突,并保持项目代码的整洁和稳定。

SVN是一个功能强大、稳定可靠的版本控制系统,广泛应用于各种规模的软件开发项目中。
它提供了多种客户端工具和服务器程序,如TortoiseSVN、VisualSVN、SVNKit等,可根据需要选择合适的工具进行使用。

3.2、使用步骤

使用SVN进行版本控制的一般步骤如下

1)安装SVN客户端
首先,你需要安装SVN客户端软件,如TortoiseSVN,VisualSVN,SVN命令行等。根据你的操作系统和个人偏好选择合适的客户端工具。

2)创建或检出工作副本
基于现有的SVN仓库,你可以选择创建一个新的工作副本(Working Copy)或者检出(Checkout)一个已存在的工作副本。通过检出一个工作副本,你可以将SVN仓库的特定版本复制到本地,以便你可以在本地进行修改。

3)修改文件
在工作副本中进行代码修改、添加新文件或删除文件等操作。你可以使用你喜欢的代码编辑器来修改工作副本中的文件。

4)提交修改
当你完成对文件的修改时,选择要提交的文件或文件夹,并执行提交操作。这将把你的修改上传到SVN仓库中,并将其作为新的版本记录下来。

5)更新工作副本
为了保持与SVN仓库同步,你应该定期更新(Update)你的工作副本。更新操作将下载最新的版本并应用到你的工作副本中,以便你能够获取其他人员的修改。

6)分支和合并
SVN提供了分支和合并的功能,使得团队可以并行开发不同的功能或任务。你可以通过创建分支进行独立的开发,并随后将分支中的修改合并到主干或其他分支中。

7)解决冲突
在多人协作开发的过程中,可能会出现代码冲突。当多个人员同时对同一文件进行修改并提交时,SVN无法自动合并变更,需要手动解决冲突。

以上是SVN的一般使用步骤。具体的操作细节会根据所选的SVN客户端工具而有所不同。
建议参考相关工具的文档或官方指南以获取更详细的使用说明。

3.3、文件夹全局忽略

在开发过程中,有些文件是不需要提交,就需要进行忽略操作。

1)递归应用该属性
在这里插入图片描述
2)忽略效果
在这里插入图片描述
3)导入导出忽略文件
在这里插入图片描述

需要勾选递归应用该属性,会自动遍历当前文件下的所有bin文件夹,并标记上忽略。
这样就不需要,每个项目都忽略一遍bin和obj,并且还可以导出忽略信息,下次有重新检出代码,则直接导入即可

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

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

相关文章

汽车服务门店小程序模板制作指南

在数字化时代,一个小程序的力量不可忽视。它不仅是展示品牌形象和提供用户服务的重要工具,更是扩大客户群体和提高营收的关键手段。对于汽车服务门店来说,拥有一个精美且功能齐全的小程序,更将成为你在竞争激烈的市场中的重要武器…

AUTOSAR开发工具DaVinci Configurator里的Modules

DaVinci Configurator 里面有个Module这个概念。 如你所想,基本上跟AUTOSAR架构里面的Module相对应 从软件的Project菜单中的Basic Editor项可以打开 打开这个菜单后,会看到很多Modules项以及其相关配置项 这个Basic Editor显示出整个ECU配置中的所有…

微信开发之朋友圈自动评论的技术实现

简要描述: 朋友圈评论 请求URL: http://域名地址/snsComment 请求方式: POST 请求头Headers: Content-Type:application/jsonAuthorization:login接口返回 参数: 参数名必选类型说明wI…

goroutine的一点东西

前面的两篇,从相对比较简单的锁的内容入手(也是干货满满),开始了go的系列。这篇开始,进入更核心的内容。我们知道,go应该是第一门在语言层面支持协程的编程语言(可能是我孤陋寡闻),goroutine也完全算的上是go的门面。g…

Python Qt(八)Treeview

源代码: # -*- coding: utf-8 -*-# Form implementation generated from reading ui file qt_treeview.ui # # Created by: PyQt5 UI code generator 5.15.9 # # WARNING: Any manual changes made to this file will be lost when pyuic5 is # run again. Do not…

Jmeter和Postman那个工具更适合做接口测试?

软件测试行业做功能测试和接口测试的人相对比较多。在测试工作中,有高手,自然也会有小白,但有一点我们无法否认,就是每一个高手都是从小白开始的,所以今天我们就来谈谈一大部分人在做的接口测试,小白变高手…

什么是 ORAM

参考文献: [GO96] Goldreich O, Ostrovsky R. Software protection and simulation on oblivious RAMs[J]. Journal of the ACM (JACM), 1996, 43(3): 431-473.[Batcher68] Batcher K E. Sorting networks and their applications[C]//Proceedings of the April 30…

进程间通信之System V 共享内存

文章目录 一、共享内存 进程具有独立性,因此进程间通信的前提是两个进程能看到同一份资源 一、共享内存 在内存中申请一块空间,并将起始地址分别映射到两个进程的虚拟地址空间上,便可以让两个进程看到同一份资源 操作系统为了管理共享内存&…

基于Python+OpenCV智能答题卡识别系统——深度学习和图像识别算法应用(含Python全部工程源码)+训练与测试数据集

目录 前言总体设计系统整体结构图系统流程图 运行环境Python 环境PyCharm安装OpenCV环境 模块实现1. 信息识别2. Excel导出模块3. 图形用户界面模块4. 手写识别模块 系统测试1. 系统识别准确率2. 系统识别应用 工程源代码下载其它资料下载 前言 本项目基于Python和OpenCV图像处…

[maven]关于pom文件中的<relativePath>标签

关于pom文件中的<relativePath>标签 为什么子工程要使用relativePath准确的找到父工程pom.xml.因为本质继承就是pom的继承。父工程pom文件被子工程复用了标签。&#xff08;可以说只要我在父工程定义了标签&#xff0c;子工程就可以没有&#xff0c;因为他继承过来了&…

微信开发之一键踢出群聊的技术实现

简要描述&#xff1a; 删除群成员 请求URL&#xff1a; http://域名地址/deleteChatRoomMember 请求方式&#xff1a; POST 请求头Headers&#xff1a; Content-Type&#xff1a;application/jsonAuthorization&#xff1a;login接口返回 参数&#xff1a; 参数名必选…