精华内容
下载资源
问答
  • 版本控制工具

    千次阅读 热门讨论 2005-01-19 09:53:00
    版本控制工具 版本控制是程序开发、管理必不可少的工具,特别是在多人协作的团队中,适宜的版本控制工具可以提高开发效率,消除很多有代码版本带来的问题。本文首先列举没有版本控制工具时可能遇到的问题,再对主流...

    版本控制工具
        版本控制是程序开发、管理必不可少的工具,特别是在多人协作的团队中,适宜的版本控制工具可以提高开发效率,消除很多有代码版本带来的问题。本文首先列举没有版本控制工具时可能遇到的问题,再对主流版本控制工具做概要介绍,之后对作为Java开发者首选的版本控制工具CVS的历史、功能、概念做详细的介绍;最后在Eclipse+CVS环境中,以CVS使用的一个完整流程为例,介绍如何正确的使用CVS工具。

    为什么要使用版本控制工具?
    如果没有版本控制工具的协助,在开发中我们经常会遇到下面的一些问题:
    一、 代码管理混乱。如果是别人添加或删除一个文件,你很难发现。没有办法对文件代码的修改追查跟踪。甚至出现文件丢失,或新版本代码被同伴无意覆盖等现象。
    二、 解决代码冲突困难。当大家同时修改一个公共文件时,解决代码冲突是一件很头疼的事。最原始的办法是手工打开冲突文件,逐行比较,再手工粘贴复制。更高级的做法是使用文件比较工具,但仍省不了繁杂的手工操作,一不小心,甚至会引入新的bug。
    三、 在代码整合期间引入深层BUG。例如开发者A写了一个公共函数,B觉得正好可以复用;后来A又对这个公共函数进行了修改,添加了新的逻辑,而这个改动的却是B不想要的。或者是A发现这个公共函数不够用,又新做了一个函数,B却没有及时获得通知。这些,都为深层BUG留下隐患。
    四、 无法对代码的拥有者进行权限控制。代码完全暴露在所有的开发者面前,任何人都可以随意进行增、删、改操作,无法指定明确的人对代码进行负责。特别是产品的开发,这是极其危险的。
    五、 项目不同版本发布困难。特别是对产品的开发,你会频繁的进行版本发布,这时如果没有一个有效的管理产品版本的工具,一切将变得非常艰难。
        上面只是列举了一些没有版本控制系统可能带来的问题,特别是对大型项目和异地协同开发有了一个合适的版本控制工具,它可以有效解决因为代码版本不同引起的各种问题,让我们的开发人员能更多的把精力花费在开发上面。而不是每次都花费很多时间进行代码整合和解决版本不同带来的各种问题。

    主流版本控制工具介绍
        现在,有很多优秀的版本控制工具供我们选择,下面就五种主流的版本控制工具做简单的介绍。
    Starteam
        是一个集合了版本控制、构建管理(Build Management)和缺陷跟踪系统为一体的软件,并且具有强大的图形界面,易学易用;但管理复杂、维护困难。2002年底被Borland公司收购。
    PVCS Version Manager
         是美国的MERANT公司软件配置管理工具PVCS 家族中的一个组成部分,它能够实现源代码、可执行文件、应用文件、图形文件和文档的版本管理;它能安全地支持软件并行开发,对多个软件版本的变更进行有效的控制管理。
    ClearCase(CC)
        是ROSE构件的一部分,目前最牛的配置管理工具,主要应用于复杂的产品发放、分布式团队合作、并行的开发和维护任务。可以控制word, excel,powerpoint,visio等文件格式,对于不认识的格式可以自己定义一种类型来标识。
    Visual SourceSafe(VSS)
        简单易用、方便高效、与Windows操作系统及微软开发工具高度集成。
    CVS(Concurrent Versions System)
        是开发源码的并发版本系统,它是目前最流行的面向软件开发人员的源代码版本管理解决方案。它可用于各种平台,包括 Linux 、Unix和 Windows NT/2000/XP等等。
        前面三种是重量级的商业版本控制工具,更适合庞大的团队和项目,并且价格不菲。Visual SourceSafe是微软的产品,当然只能用在windows平台并与微软的开发工具无缝集成。CVS免费开源,并且几乎所有开源项目都是使用CVS进行版本管理,无疑,它是我们Java开发者最优选择。

    CVS的历史、功能、基本概念的介绍

    历史

        CVS 诞生于 1986 年,当时作为一组 shell 脚本而出现;1989年3月,Brian Berlinor用C语言重新设计并编写了CVS的代码;1993年前后,Jim Kingdon最终将CVS设计成基于网络的平台,开发者们能从Internet任何地方获得程序源代码。截至目前最新版本是2004年12月13日发布的1.12.11。

    功能介绍
    一、 代码统一管理,保存所有代码文件更改的历史记录。对代码进行集中统一管理,可以方便查看新增或删除的文件,能够跟踪所有代码改动痕迹。可以随意恢复到以前任意一个历史版本。并避免了因为版本不同引入的深层BUG。
    二、 完善的冲突解决方案,可以方便的解决文件冲突问题,而不需要借助其它的文件比较工具和手工的粘贴复制。
    三、 代码权限的管理。可以为不同的用户设置不同的权限。可以设置访问用户的密码、只读、修改等权限,而且通过CVS ROOT目录下的脚本,提供了相应功能扩充的接口,不但可以完成精细的权限控制,还能完成更加个性化的功能。
    四、 支持方便的版本发布和分支功能。

    基本概念
    资源库(Repository)

    CVS的资源库存储全部的版本控制下的文件copy,通常不容许直接访问,只能通过cvs命令,获得一份本地copy,改动后再check in(commit)回资源库。而资源库通常为与工作目录分离的。CVS通过多种方式访问资源库。每种方法有不同目录表示形式。
    版本(Revision)
    每一个文件的各个版本都不相同,形如1.1, 1.2.1,一般1.1是该文件的第一个revision,后面的一个将自动增加最右面的一个整数,比如1.2, 1.3, 1.4...有时候会出现1.3.2.2,原因见后。revision总是偶数个数字。一般情况下将revision看作时CVS自己内部的一个编号,而tag则可以标志用户的特定信息。
    标签(Tag)
    用符号化的表示方法标志文件特定revision的信息。通常不需要对某一个孤立的文件作tag,而是对所有文件同时作一个tag,以后用户可以仅向特定tag的文件提交或者checkout。另外一个作用是在发布软件的时候表示哪些文件及其哪个版本是可用的;各文件不同revision可以包括在一个tag中。如果命名一个已存在的tag默认将不会覆盖原来的;
    分支(Branch)
    当用户修改一个branch时不会对另外的branch产生任何影响。可以在适当的时候通过合并的方法将两个版本合起来;branch总是在当前revision后面加上一个偶数整数(从2开始,到0结束),所以branch总是奇数个数字,比如1.2后面branch为1.2.2,该分支下revision可能为1.2.2.1,1.2.2.2,...
    冲突(Conflct)
    完全是纯文本的冲突,不包含逻辑上的矛盾。一般是一份文件,A做了改动,B在A提交之前也做了改动,这样最后谁commit就会出现冲突,需要手工解决冲突再提交。

    CVS与eclipse集成开发
      前面对CVS的历史、功能、概论等理论知识做了介绍。下面我们将使用最流行的Java IDE Eclipse中内置的CVS工具,以一个完整开发流程,介绍实际环境中CVS的正确使用。关于CVS系统的安装,不是本文的内容,您可以从附录的链接中获取安装的介绍资料。

    常用的CVS控制命令
    Check Out(检出)
    把源文件从cvs源代码仓库中取出,缺省的版本是最新的版本,你也可以选择指定的版本。在每次更改源代码之前,需要Check Out最新的版本,再起基础之上对源代码进行修改。将代码目录checkout到指定目录下,所有文件都是read-write。
    Check In(检入)
    把源代码加入到cvs源代码仓库中,每一个添加进代码库中的文件的版本是 1.1。以后每次修改文件重新ci以后,此文件的版本递增为1.2 ,1.3.……。在每次对源代码修改之后,需要Check In,提交最新版本的源代码。
    Synchronize with Repository(与资源库同步,简称同步)
    使本地更改与资源库同步,它会列出本地和资源库之间不同的所有文件。
    Add to Version Control
    将新的文件加入到版本控制之中。
    Add to .cvsIgnore
    将文件设置到版本控制之外,这样该文件或目录中的文件的更改在CVS中不可见,即使同步也无法发现。

    CVS正确使用步骤
    一、 同步(Synchronize)

    就是将本地更改与服务器同步,同步之后可以清晰的看到上一捡出(Check Out)版本之后本地、服务器上的最新改动。这是非常有用的,特别是敏捷开发,强调集体拥有代码。有了同步功能,你可以全局把握项目的代码,可以很方便的跟踪公共模块代码的任何改动。
    具体操作:在Eclipse的资源视图(Resource Perspective)或者Java视图(Java Perspective)中,选中要同步的目录,点击右键选择"Synchronize with Repository",之后它将显示同步的视图。如下图:
     
    (图一、CVS同步视图)
    同步之后,它有四种Mode可以选择,见上图绿色框框里按钮。从做到右分别为:
    Incoming Mode:表示修改是来自服务器,对应于更新(update)操作。
    Outgoing Mode:表示修改是来自本地,对应提交(commit)操作。
    Incoming/ Outgoing Mode:本地和服务器修改都在该模式(Mode)中显示。
    Conflicts Mode:显示本地和服务器修改的冲突文件。
    二、 更新(update)
    比较简单,选择Incoming Mode,再选中要更新的文件,右键选择update操作。
    三、 解决冲突并合并(solve conflct and merge)
    如果有冲突文件,冲突文件不能更新。你必须先解决冲突再操作。选中冲突的文件,再点右键选择"Open in Compare Editor",用比较工具打开该文件。如下图:

    (图二、CVS比较器视图)

    比较器(Compare)视图,左边版本底的是本地文件(Local File),右边是远程服务器文件(Remote File)。使用"Select Next Change"按钮(绿框中的第一箭头向下按钮),逐一查看不同点。如果不同点标识为黑色框框,则不用管它。如果是蓝色框框,则需要手工调整。如上图,不同点是蓝色框框,将鼠标放到两个不同点的中间小方框中,则凸出一个向右的按钮,并显示提示信息"Copy Current Change from Right to Left",意思是将右边服务器的不同点覆盖到左边的本地文件。点中此按钮。重复这样的操作,将所有服务器上的更改拷贝到本地。
    如果有一行代码,本地和服务器都同时做了修改。这时,修改点则显示红色框框。这时,你就必须手工做正确的修改。全部修改完成,保存本地文件。
    此时,如果修改点没有了蓝色的框框,就可以开始做合并(merge)操作了。操作也很简单,选择该文件,点击右键,选择"Mark as merged"。
    注意:必须确保没有蓝色框框,即完全拷贝了服务器的修改才可以做合并(merge)操作,否则会覆盖服务器上的代码。
    四、 提交(commit)
    更新服务器代码,解决冲突之后,首先要查看本地文件修改之后是否有错误。如果有,当然首先解决错误,再提交。

    附录:
    http://www.8848software.com/scmchina/scmtools.htm 由很多版本控制工具的文档链接。
    http://www.perforce.com/perforce/reviews.html Infrastructure Group对Perforce 和Clearcase, CVS, PVCS,Visual SourceSafe (VSS)几种CM工具进行了定量和定性的比较. 对于定性的比较,内容涉及工具支持的方法和环境;对于定量的比较,包括在不同的项目规模上,执行不同的活动所需要的时间。

    展开全文
  • 版本控制工具

    千次阅读 2005-01-27 20:47:00
    版本控制工具 版本控制工具 版本控制是程序开发、管理必不可少的工具,特别是在多人协作的团队中,适宜的版本控制工具可以提高开发效率,消除很多有代码版本带来的问题。本文首先列举没有版本控制工具时可能遇到的...
    
    

    版本控制工具
        版本控制是程序开发、管理必不可少的工具,特别是在多人协作的团队中,适宜的版本控制工具可以提高开发效率,消除很多有代码版本带来的问题。本文首先列举没有版本控制工具时可能遇到的问题,再对主流版本控制工具做概要介绍,之后对作为Java开发者首选的版本控制工具CVS的历史、功能、概念做详细的介绍;最后在Eclipse+CVS环境中,以CVS使用的一个完整流程为例,介绍如何正确的使用CVS工具。

    为什么要使用版本控制工具?
    如果没有版本控制工具的协助,在开发中我们经常会遇到下面的一些问题:
    一、 代码管理混乱。如果是别人添加或删除一个文件,你很难发现。没有办法对文件代码的修改追查跟踪。甚至出现文件丢失,或新版本代码被同伴无意覆盖等现象。
    二、 解决代码冲突困难。当大家同时修改一个公共文件时,解决代码冲突是一件很头疼的事。最原始的办法是手工打开冲突文件,逐行比较,再手工粘贴复制。更高级的做法是使用文件比较工具,但仍省不了繁杂的手工操作,一不小心,甚至会引入新的bug。
    三、 在代码整合期间引入深层BUG。例如开发者A写了一个公共函数,B觉得正好可以复用;后来A又对这个公共函数进行了修改,添加了新的逻辑,而这个改动的却是B不想要的。或者是A发现这个公共函数不够用,又新做了一个函数,B却没有及时获得通知。这些,都为深层BUG留下隐患。
    四、 无法对代码的拥有者进行权限控制。代码完全暴露在所有的开发者面前,任何人都可以随意进行增、删、改操作,无法指定明确的人对代码进行负责。特别是产品的开发,这是极其危险的。
    五、 项目不同版本发布困难。特别是对产品的开发,你会频繁的进行版本发布,这时如果没有一个有效的管理产品版本的工具,一切将变得非常艰难。
        上面只是列举了一些没有版本控制系统可能带来的问题,特别是对大型项目和异地协同开发有了一个合适的版本控制工具,它可以有效解决因为代码版本不同引起的各种问题,让我们的开发人员能更多的把精力花费在开发上面。而不是每次都花费很多时间进行代码整合和解决版本不同带来的各种问题。

    主流版本控制工具介绍
        现在,有很多优秀的版本控制工具供我们选择,下面就五种主流的版本控制工具做简单的介绍。
    Starteam
        是一个集合了版本控制、构建管理(Build Management)和缺陷跟踪系统为一体的软件,并且具有强大的图形界面,易学易用;但管理复杂、维护困难。2002年底被Borland公司收购。
    PVCS Version Manager
         是美国的MERANT公司软件配置管理工具PVCS 家族中的一个组成部分,它能够实现源代码、可执行文件、应用文件、图形文件和文档的版本管理;它能安全地支持软件并行开发,对多个软件版本的变更进行有效的控制管理。
    ClearCase(CC)
        是ROSE构件的一部分,目前最牛的配置管理工具,主要应用于复杂的产品发放、分布式团队合作、并行的开发和维护任务。可以控制word, excel,powerpoint,visio等文件格式,对于不认识的格式可以自己定义一种类型来标识。
    Visual SourceSafe(VSS)
        简单易用、方便高效、与Windows操作系统及微软开发工具高度集成。
    CVS(Concurrent Versions System)
        是开发源码的并发版本系统,它是目前最流行的面向软件开发人员的源代码版本管理解决方案。它可用于各种平台,包括 Linux 、Unix和 Windows NT/2000/XP等等。
        前面三种是重量级的商业版本控制工具,更适合庞大的团队和项目,并且价格不菲。Visual SourceSafe是微软的产品,当然只能用在windows平台并与微软的开发工具无缝集成。CVS免费开源,并且几乎所有开源项目都是使用CVS进行版本管理,无疑,它是我们Java开发者最优选择。

    CVS的历史、功能、基本概念的介绍

    历史

        CVS 诞生于 1986 年,当时作为一组 shell 脚本而出现;1989年3月,Brian Berlinor用C语言重新设计并编写了CVS的代码;1993年前后,Jim Kingdon最终将CVS设计成基于网络的平台,开发者们能从Internet任何地方获得程序源代码。截至目前最新版本是2004年12月13日发布的1.12.11。

    功能介绍
    一、 代码统一管理,保存所有代码文件更改的历史记录。对代码进行集中统一管理,可以方便查看新增或删除的文件,能够跟踪所有代码改动痕迹。可以随意恢复到以前任意一个历史版本。并避免了因为版本不同引入的深层BUG。
    二、 完善的冲突解决方案,可以方便的解决文件冲突问题,而不需要借助其它的文件比较工具和手工的粘贴复制。
    三、 代码权限的管理。可以为不同的用户设置不同的权限。可以设置访问用户的密码、只读、修改等权限,而且通过CVS ROOT目录下的脚本,提供了相应功能扩充的接口,不但可以完成精细的权限控制,还能完成更加个性化的功能。
    四、 支持方便的版本发布和分支功能。

    基本概念
    资源库(Repository)

    CVS的资源库存储全部的版本控制下的文件copy,通常不容许直接访问,只能通过cvs命令,获得一份本地copy,改动后再check in(commit)回资源库。而资源库通常为与工作目录分离的。CVS通过多种方式访问资源库。每种方法有不同目录表示形式。
    版本(Revision)
    每一个文件的各个版本都不相同,形如1.1, 1.2.1,一般1.1是该文件的第一个revision,后面的一个将自动增加最右面的一个整数,比如1.2, 1.3, 1.4...有时候会出现1.3.2.2,原因见后。revision总是偶数个数字。一般情况下将revision看作时CVS自己内部的一个编号,而tag则可以标志用户的特定信息。
    标签(Tag)
    用符号化的表示方法标志文件特定revision的信息。通常不需要对某一个孤立的文件作tag,而是对所有文件同时作一个tag,以后用户可以仅向特定tag的文件提交或者checkout。另外一个作用是在发布软件的时候表示哪些文件及其哪个版本是可用的;各文件不同revision可以包括在一个tag中。如果命名一个已存在的tag默认将不会覆盖原来的;
    分支(Branch)
    当用户修改一个branch时不会对另外的branch产生任何影响。可以在适当的时候通过合并的方法将两个版本合起来;branch总是在当前revision后面加上一个偶数整数(从2开始,到0结束),所以branch总是奇数个数字,比如1.2后面branch为1.2.2,该分支下revision可能为1.2.2.1,1.2.2.2,...
    冲突(Conflct)
    完全是纯文本的冲突,不包含逻辑上的矛盾。一般是一份文件,A做了改动,B在A提交之前也做了改动,这样最后谁commit就会出现冲突,需要手工解决冲突再提交。

    CVS与eclipse集成开发
      前面对CVS的历史、功能、概论等理论知识做了介绍。下面我们将使用最流行的Java IDE Eclipse中内置的CVS工具,以一个完整开发流程,介绍实际环境中CVS的正确使用。关于CVS系统的安装,不是本文的内容,您可以从附录的链接中获取安装的介绍资料。

    常用的CVS控制命令
    Check Out(检出)
    把源文件从cvs源代码仓库中取出,缺省的版本是最新的版本,你也可以选择指定的版本。在每次更改源代码之前,需要Check Out最新的版本,再起基础之上对源代码进行修改。将代码目录checkout到指定目录下,所有文件都是read-write。
    Check In(检入)
    把源代码加入到cvs源代码仓库中,每一个添加进代码库中的文件的版本是 1.1。以后每次修改文件重新ci以后,此文件的版本递增为1.2 ,1.3.……。在每次对源代码修改之后,需要Check In,提交最新版本的源代码。
    Synchronize with Repository(与资源库同步,简称同步)
    使本地更改与资源库同步,它会列出本地和资源库之间不同的所有文件。
    Add to Version Control
    将新的文件加入到版本控制之中。
    Add to .cvsIgnore
    将文件设置到版本控制之外,这样该文件或目录中的文件的更改在CVS中不可见,即使同步也无法发现。

    CVS正确使用步骤
    一、 同步(Synchronize)

    就是将本地更改与服务器同步,同步之后可以清晰的看到上一捡出(Check Out)版本之后本地、服务器上的最新改动。这是非常有用的,特别是敏捷开发,强调集体拥有代码。有了同步功能,你可以全局把握项目的代码,可以很方便的跟踪公共模块代码的任何改动。
    具体操作:在Eclipse的资源视图(Resource Perspective)或者Java视图(Java Perspective)中,选中要同步的目录,点击右键选择"Synchronize with Repository",之后它将显示同步的视图。如下图:
     
    (图一、CVS同步视图)
    同步之后,它有四种Mode可以选择,见上图绿色框框里按钮。从做到右分别为:
    Incoming Mode:表示修改是来自服务器,对应于更新(update)操作。
    Outgoing Mode:表示修改是来自本地,对应提交(commit)操作。
    Incoming/ Outgoing Mode:本地和服务器修改都在该模式(Mode)中显示。
    Conflicts Mode:显示本地和服务器修改的冲突文件。
    二、 更新(update)
    比较简单,选择Incoming Mode,再选中要更新的文件,右键选择update操作。
    三、 解决冲突并合并(solve conflct and merge)
    如果有冲突文件,冲突文件不能更新。你必须先解决冲突再操作。选中冲突的文件,再点右键选择"Open in Compare Editor",用比较工具打开该文件。如下图:

    (图二、CVS比较器视图)

    比较器(Compare)视图,左边版本底的是本地文件(Local File),右边是远程服务器文件(Remote File)。使用"Select Next Change"按钮(绿框中的第一箭头向下按钮),逐一查看不同点。如果不同点标识为黑色框框,则不用管它。如果是蓝色框框,则需要手工调整。如上图,不同点是蓝色框框,将鼠标放到两个不同点的中间小方框中,则凸出一个向右的按钮,并显示提示信息"Copy Current Change from Right to Left",意思是将右边服务器的不同点覆盖到左边的本地文件。点中此按钮。重复这样的操作,将所有服务器上的更改拷贝到本地。
    如果有一行代码,本地和服务器都同时做了修改。这时,修改点则显示红色框框。这时,你就必须手工做正确的修改。全部修改完成,保存本地文件。
    此时,如果修改点没有了蓝色的框框,就可以开始做合并(merge)操作了。操作也很简单,选择该文件,点击右键,选择"Mark as merged"。
    注意:必须确保没有蓝色框框,即完全拷贝了服务器的修改才可以做合并(merge)操作,否则会覆盖服务器上的代码。
    四、 提交(commit)
    更新服务器代码,解决冲突之后,首先要查看本地文件修改之后是否有错误。如果有,当然首先解决错误,再提交。

    附录:
    http://www.8848software.com/scmchina/scmtools.htm 由很多版本控制工具的文档链接。
    http://www.perforce.com/perforce/reviews.html Infrastructure Group对Perforce 和Clearcase, CVS, PVCS,Visual SourceSafe (VSS)几种CM工具进行了定量和定性的比较. 对于定性的比较,内容涉及工具支持的方法和环境;对于定量的比较,包括在不同的项目规模上,执行不同的活动所需要的时间。

    展开全文
  • 作为一名优秀的程序猿,怎么能不会使用版本控制工具(然而我就不会)? SVN,英文名Subversion,一款很棒的开源版本控制系统,采用分支管理的模式且拥有众多IDE支持,比如Eclipse,MyEclipse,Android Studio等等等...

        作为一名优秀的程序猿,怎么能不会使用版本控制工具(然而我就不会)?

        SVN,英文名Subversion,一款很棒的开源版本控制系统,采用分支管理的模式且拥有众多IDE支持,比如Eclipse,MyEclipse,Android Studio等等等。

        最近由于项目需要,PO主研究了Android Studio和Eclipse中如何引用SVN对项目进行版本控制,纯英文的IDE都没能阻挡他坚定的步伐(热泪盈眶)

        

       IDE:Android Studio 1.5

       Verion Control:TortoiseSVN 1.8.8

        

        首先,你需要正确安装对应版本的SVN,并在安装时确认勾选所有需要安装的程序:

       

       


    在这里需要注意一下Command line client tools这个选项,在安装的时候它默认是不安装的状态,主要手动勾选,否则会造成找不到svn.exe的问题


    如果顺利的话,安装完成之后你会在鼠标右键菜单中发现TortoiseSVN选项,在其子菜单中找到“版本库浏览器”,启动它:


    输入对应的svn服务器地址或网址,点击确定,即可连接到svn服务器



        成功连接服务器,证明SVN安装成功,下面我们启动Android Studio,进入设置Setting,选择Versin Control中的Subversion选项,为其配置SVN:

        User command line client:指定SVN客户端执行程序的位置,找到其安装目录下的svn.exe即可,没找到的请认真看上面的安装步骤↑




    配置好了SVN路径,下面我们来添加忽略文件,这一步很重要,可以为你省去不少反复上传非必须文件的时间(虽然还是很长)

    在Ignored Files选项卡中点击绿色的加号,Android Studio为我们提供了对于忽略文件的三种检索方式,分别是:指定文件,指定文件夹,和指定关键字

    一般情况下,需要忽略的文件有:.idea文件夹下所有文件,.gradle文件夹下所有文件,local.properties文件和所有尾缀为.iml的文件

    添加后点击Apply执行改动




    在顶部工具栏中找到VCS中的improt into version control选项,Android Studio提供了两种方式来提交项目,分别是import into SubversionShare Project

                    import into Subversion:上传项目到Subversion,并不建立关联

                    Share Project:关联项目到Subversion,在第二次提交代码时上传项目

                    在这里,我们选择第二种,Share Project之后会要求输入svn的地址和管理员分配的账号密码,登陆后即可进入关联项目页面

                    在页面中选择要关联的项目地址和预创建的文件路径格式(一般选第二个),然后点击Share,在弹出窗口选择1.8 format,点击OK

                    如果以上操作无误的话,经过漫长的等待,大概就成功了。




    你会发现在工具栏中多出了一排图标,这是版本控制的快捷按钮,单击第二项,commit code,填写Log日志,即可上传代码

    第一次上传的时候奇慢无比,那个进度条就一直滚啊滚的,你可以打局LOL消遣一下o( ̄ヘ ̄o#)

    上传完成后,会有绿色的气泡冒充,提示上传成功了多少多少个文件云云,到这里,我们的SVN就可以正常使用了


    下面说一下如何移除版本控制,毕竟尝试的道路上充满了岔道与坎坷,一时手滑填错了地址怎么办?总不能重装IDE额

    不要捉急,在添加了版本控制后,你会发现在项目文件下自动生成了一个名为.svn的隐藏文件,删除它,重新打开项目,你的项目就会恢复到原来的样子


    Try to be best!

    展开全文
  • 版本控制工具-Git

    千次阅读 2019-12-29 00:16:36
    版本控制工具-Git 一、概述 学习资料: https://git-scm.com/book/zh/v2 什么是版本控制系统? 版本控制软件提供完备的版本管理功能,用于存储、追踪目录(文件夹)和文件的修改历史,是软件开发者的必备工具,是...

    版本控制工具-Git

    一、概述

    学习资料: https://git-scm.com/book/zh/v2

    什么是版本控制系统?

    版本控制软件提供完备的版本管理功能,用于存储、追踪目录(文件夹)和文件的修改历史,是软件开发者的必备工具,是软件公司的基础设施。版本控制软件的最高目标,是支持软件公司的配置管理活动,追踪多个版本的开发和维护活动,及时发布软件

    一句话总结:版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统

    版本控制系统分类:

    • 集中式版本控制系统(CVCS): SVN

    在这里插入图片描述

    • 分布式版本控制系统(DVCS):Git

    在这里插入图片描述

    什么是Git?

    Git是一款免费开源的分布式版本控制系统,用以处理小到大型的工程版本控制操作。

    Git历史

    同生活中的许多伟大事物一样,Git 诞生于一个极富纷争大举创新的年代。

    Linux 内核开源项目有着为数众多的参与者。 绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。 到 2002 年,整个项目组开始启用一个专有的分布式版本控制系统 BitKeeper 来管理和维护代码。

    到了 2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了 Linux 内核社区免费使用 BitKeeper 的权力。 这就迫使 Linux 开源社区(特别是 Linux 的缔造者 Linus Torvalds)基于使用 BitKeeper 时的经验教训,开发出自己的版本系统。 他们对新的系统制订了若干目标:

    • 速度
    • 简单的设计
    • 对非线性开发模式的强力支持(允许成千上万个并行开发的分支)
    • 完全分布式
    • 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)

    自诞生于 2005 年以来,Git 日臻成熟完善,在高度易用的同时,仍然保留着初期设定的目标。 它的速度飞快,极其适合管理大项目,有着令人难以置信的非线性分支管理系统(参见 Git 分支)。

    Git学习文档

    中文文档: https://git-scm.com/book/zh/v2

    二、Git使用

    安装Git

    以windows平台为例

    下载Git lient应用

    https://github.com/git-for-windows/git/releases/download/v2.23.0.windows.1/Git-2.23.0-64-bit.exe

    安装配置

    建议:使用默认配置即可

    如何使用Git

    • GUI
    • Bash

    在这里插入图片描述

    初始化设置

    Administrator@PC-20190909FNCP MINGW64 /e
    $ git config --global user.name 'gaozhy'
    
    Administrator@PC-20190909FNCP MINGW64 /e
    $ git config --global user.email 'gaozhy@zparkhr.com.cn'
    
    Administrator@PC-20190909FNCP MINGW64 /e
    $ git config --list
    core.symlinks=false
    core.autocrlf=true
    core.fscache=true
    color.diff=auto
    color.status=auto
    color.branch=auto
    color.interactive=true
    help.format=html
    rebase.autosquash=true
    http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
    http.sslbackend=openssl
    diff.astextplain.textconv=astextplain
    filter.lfs.clean=git-lfs clean -- %f
    filter.lfs.smudge=git-lfs smudge -- %f
    filter.lfs.process=git-lfs filter-process
    filter.lfs.required=true
    user.name=gaozhy
    user.email=gaozhy@zparkhr.com.cn
    

    核心概念

    Git 工作区、暂存区和版本库

    • 工作区:工作目录。

    • 暂存区:英文叫stage, 或index。一般存放在 “.git目录下” 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。

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

    在这里插入图片描述

    基本操作

    创建版本库(Repository)

    仓库的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻恢复还原。

    Administrator@PC-20190909FNCP MINGW64 /f/baizhi
    $ git init
    Initialized empty Git repository in F:/baizhi/.git/
    

    使用git init指令会在工作目录中,创建一个隐藏目录.git, 此目录是git版本库文件,请勿破坏

    Add

    将工作区中的文件 添加到版本库的暂存区

    Administrator@PC-20190909FNCP MINGW64 /f/baizhi (master)
    $ git add Hello.java
    

    Commit

    将暂存区的数据,提交到版本库。只有提交到版本库的数据,Git才会进行版本控制操作

    Administrator@PC-20190909FNCP MINGW64 /f/baizhi (master)
    $ git commit -m 'first commit Hello.java'
    [master (root-commit) 8c21f36] first commit Hello.java
     1 file changed, 0 insertions(+), 0 deletions(-)
     create mode 100644 Hello.java
    

    Status

    展示Git的工作状态

    如:删除Hello.java

    Administrator@PC-20190909FNCP MINGW64 /f/baizhi (master)
    $ git status
    On branch master
    Changes not staged for commit:
      (use "git add/rm <file>..." to update what will be committed)
      (use "git checkout -- <file>..." to discard changes in working directory)
    
            deleted:    Hello.java
    
    no changes added to commit (use "git add" and/or "git commit -a")
    

    Checkout

    从版本库恢复误删除的数据

    Administrator@PC-20190909FNCP MINGW64 /f/baizhi (master)
    $ git checkout -- Hello.java
    

    Diff

    比对工作区文件或者目录和版本库内容差异

    +: 工作区对比版本库多出来代码

    -: 工作区对比版本库少出来代码

    Administrator@PC-20190909FNCP MINGW64 /f/baizhi (master)
    $ git diff Hello.java
    diff --git a/Hello.java b/Hello.java
    index d6301bf..936b28c 100644
    --- a/Hello.java
    +++ b/Hello.java
    @@ -1,5 +1,4 @@
     public class Hello{
            public static void main(String[] args){
    -               System.out.println("Hello");
            }
     }
    

    Rm

    删除工作区的文件或者目录

    真删除
    Administrator@PC-20190909FNCP MINGW64 /f/baizhi (master)
    $ rm -rf Cat.java
    
    Administrator@PC-20190909FNCP MINGW64 /f/baizhi (master)
    $ git status
    On branch master
    Changes not staged for commit:
      (use "git add/rm <file>..." to update what will be committed)
      (use "git checkout -- <file>..." to discard changes in working directory)
    
            deleted:    Cat.java
    
    no changes added to commit (use "git add" and/or "git commit -a")
    
    Administrator@PC-20190909FNCP MINGW64 /f/baizhi (master)
    $ git add Cat.java
    
    Administrator@PC-20190909FNCP MINGW64 /f/baizhi (master)
    $ git status
    On branch master
    Changes to be committed:
      (use "git reset HEAD <file>..." to unstage)
    
            deleted:    Cat.java
    
    
    Administrator@PC-20190909FNCP MINGW64 /f/baizhi (master)
    $ git commit -m 'delete Cat.java'
    [master a980b75] delete Cat.java
     1 file changed, 1 deletion(-)
     delete mode 100644 Cat.java
    
    误删除
    Administrator@PC-20190909FNCP MINGW64 /f/baizhi (master)
    $ git status
    On branch master
    Changes not staged for commit:
      (use "git add/rm <file>..." to update what will be committed)
      (use "git checkout -- <file>..." to discard changes in working directory)
    
            deleted:    Hello.java
    
    no changes added to commit (use "git add" and/or "git commit -a")
    
    Administrator@PC-20190909FNCP MINGW64 /f/baizhi (master)
    $ git checkout -- Hello.java
    

    版本回退

    log

    展示Git版本库的提交日志

    
    Administrator@PC-20190909FNCP MINGW64 /f/baizhi (master)
    $ git log
    
    commit a980b7551643e8ab39d41ec9a84cae3903990db9 (HEAD -> master)  # commit id
    Author: gaozhy <gaozhy@zparkhr.com.cn>   # 操作人身份信息
    Date:   Fri Oct 18 14:33:04 2019 +0800   # 操作时间
     						
        delete Cat.java						 # 操作内容
        
    Administrator@PC-20190909FNCP MINGW64 /f/baizhi (master)
    $ git log --pretty=oneline
    a980b7551643e8ab39d41ec9a84cae3903990db9 (HEAD -> master) delete Cat.java
    5e3aa730d9a4e2656ebb0589ec9e604dec413d61 modify something
    c85edcd49c082a1f41bd36342c248b89b9c95d21 first commit Cat.java
    2fae3bb8852414d6787eaab3965cf04d69246366 print hello
    8c21f366594684612b71df8827807677b302332b first commit Hello.java
    

    reset

    回退到版本库的历史版本

    从历史版本回到将来版本

    Administrator@PC-20190909FNCP MINGW64 /f/baizhi (master)
    $ git reset --hard 2fae3 
    HEAD is now at 2fae3bb print hello
    
    Administrator@PC-20190909FNCP MINGW64 /f/baizhi (master)
    # 展示所有的操作日志
    $ git reflog
    8c21f36 (HEAD -> master) HEAD@{0}: reset: moving to 8c21f366594684612b71df882780                                                                                                               7677b302332b
    a980b75 HEAD@{1}: reset: moving to a980b7551643e8ab39d41ec9a84cae3903990db9
    8c21f36 (HEAD -> master) HEAD@{2}: reset: moving to 8c21f366594684612b71df882780                                                                                                               7677b302332b
    c85edcd HEAD@{3}: reset: moving to c85edcd49c082a1f41bd36342c248b89b9c95d21
    a980b75 HEAD@{4}: commit: delete Cat.java
    5e3aa73 HEAD@{5}: commit: modify something
    c85edcd HEAD@{6}: commit: first commit Cat.java
    2fae3bb HEAD@{7}: commit: print hello
    8c21f36 (HEAD -> master) HEAD@{8}: commit (initial): first commit Hello.java
    

    Check(过期)

    丢弃已提交到暂存区的修改内容

    三、Git远程仓库-GitHub

    Git远程仓库:GitHub、GitLab

    GitHub是全球最大的一个Git本地版本库的托管网站,使用Github可以有效的对Git本地版本库的内容进行备份,并且我们可以借助于GitHub完成协同开发

    https://github.com/

    注册&登陆

    配置SSH免密登陆

    Administrator@PC-20190909FNCP MINGW64 /f/baizhi (master)
    $  ssh-keygen -t rsa -C "gaozhy@zparkhr.com.cn"
    Generating public/private rsa key pair.
    Enter file in which to save the key (/c/Users/Administrator/.ssh/id_rsa):
    Created directory '/c/Users/Administrator/.ssh'.
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /c/Users/Administrator/.ssh/id_rsa.
    Your public key has been saved in /c/Users/Administrator/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:yj8T1aEOWEfRR8L10gqlfu6tPvWKD2+JJAqG5SpDTi0 gaozhy@zparkhr.com.cn
    The key's randomart image is:
    +---[RSA 2048]----+
    |         .o+.o+  |
    |        . . ++.o |
    |       o . ooo. o|
    |      o . o... o |
    |   . +  S+  . o  |
    |  E o.+.. o .o  .|
    | + . oo. o o...o.|
    |  + .  .+   .=+..|
    |   o    .o  .+B+.|
    +----[SHA256]-----+
    Administrator@PC-20190909FNCP MINGW64 ~
    $ cd .ssh/
    
    Administrator@PC-20190909FNCP MINGW64 ~/.ssh
    $ ll
    total 5
    -rw-r--r-- 1 Administrator 197121 1675 十月 18 15:11 id_rsa
    -rw-r--r-- 1 Administrator 197121  403 十月 18 15:11 id_rsa.pub
    

    在这里插入图片描述

    创建Git远程仓库

    在这里插入图片描述

    本地关联远程版本库

    Administrator@PC-20190909FNCP MINGW64 /e
    $ cd F:
    
    Administrator@PC-20190909FNCP MINGW64 /f
    $ cd baizhi/
    
    Administrator@PC-20190909FNCP MINGW64 /f/baizhi (master)
    # 关联
    $ git remote add origin https://github.com/gaozhy520/bigdata2.git
    

    推送代码

    Administrator@PC-20190909FNCP MINGW64 /f/baizhi (master)
    $ git push -u origin master
    Username for 'https://github.com': 627345199@qq.com
    Enumerating objects: 5, done.
    Counting objects: 100% (5/5), done.
    Delta compression using up to 6 threads.
    Compressing objects: 100% (2/2), done.
    Writing objects: 100% (3/3), 296 bytes | 296.00 KiB/s, done.
    Total 3 (delta 1), reused 0 (delta 0)
    remote: Resolving deltas: 100% (1/1), completed with 1 local object.
    To https://github.com/gaozhy520/bigdata2.git
       2fae3bb..f94ae97  master -> master
    Branch 'master' set up to track remote branch 'master' from 'origin'.
    

    四、分支管理

    展示当前所处分支

    当前所处的分支前,会有*标记

    Administrator@PC-20190909FNCP MINGW64 /f/baizhi1/bigdata2 (master)
    $ git branch
    * master
    

    创建分支

    Administrator@PC-20190909FNCP MINGW64 /f/baizhi1/bigdata2 (master)
    $ git checkout -b dev
    Switched to a new branch 'dev'
    
    Administrator@PC-20190909FNCP MINGW64 /f/baizhi1/bigdata2 (dev)
    $ git branch
    * dev
      master
    

    切换分支

    Administrator@PC-20190909FNCP MINGW64 /f/baizhi1/bigdata2 (dev)
    $ git checkout master
    Switched to branch 'master'
    Your branch is up to date with 'origin/master'.
    
    Administrator@PC-20190909FNCP MINGW64 /f/baizhi1/bigdata2 (master)
    $ git checkout dev
    Switched to branch 'dev'
    

    合并分支

    test分支功能合并到dev分支

    1. 切换到dev分支
    2. merge操作
    Administrator@PC-20190909FNCP MINGW64 /f/baizhi1/bigdata2 (dev)
    $ git merge test
    Updating b5655a3..13b13cf
    Fast-forward
     Hello.java | 1 +
     1 file changed, 1 insertion(+)
    

    删除分支

    Administrator@PC-20190909FNCP MINGW64 /f/baizhi1/bigdata2 (master)
    $ git branch -d test
    Deleted branch test (was 13b13cf).
    
    Administrator@PC-20190909FNCP MINGW64 /f/baizhi1/bigdata2 (master)
    $ git branch
      dev
    

    五、协同开发

    邀请组员

    在这里插入图片描述

    发送邀请链接

    发送邀请链接https://github.com/gaozhy520/bigdata2/invitations给协同者,协同开发者选择同意后,即可假如项目中(读写访问权限)。

    协同者克隆项目

    Administrator@PC-20190909FNCP MINGW64 /f/baizhi1/bigdata2 (master)
    $ git clone https://github.com/gaozhy520/bigdata2.git
    

    协同开发代码提交到远程版本库

    协同者操作

    同步协同者的代码到本地版本库

    Administrator@PC-20190909FNCP MINGW64 /f/baizhi1/bigdata2 (master)
    $ git pull origin master
    remote: Enumerating objects: 5, done.
    remote: Counting objects: 100% (5/5), done.
    remote: Compressing objects: 100% (1/1), done.
    remote: Total 3 (delta 1), reused 3 (delta 1), pack-reused 0
    Unpacking objects: 100% (3/3), done.
    From https://github.com/gaozhy520/bigdata2
     * branch            master     -> FETCH_HEAD
       f94ae97..db941ee  master     -> origin/master
    Auto-merging Hello.java
    CONFLICT (content): Merge conflict in Hello.java
    Automatic merge failed; fix conflicts and then commit the result.
    

    发现如下内容:CONFLICT (content): Merge conflict in Hello.java

    解决代码冲突问题:

    • 代码共存(无重合)
    • 保留一方(有重合)

    六、冲突处理

    当团队协同工作的时候,多位团队成员同时操作一个文件。团队成员A操作完成后,将该文件提交到远程仓库上。此时,其他团队成员的本地文件与版本库上的文件版本不一致。当团队成员B操作完成并对文件进行 提交操作时,就会产生冲突

    在这里插入图片描述

    在这里插入图片描述

    七、IDEA集成

    准备工作

    • 需要Git客户端应用(略)

    集成方法

    设置

    在这里插入图片描述

    开启

    在这里插入图片描述

    初始化

    在这里插入图片描述

    其余操作

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    展开全文
  • Git 和 SVN版本控制工具

    千次阅读 2019-03-28 14:08:01
    现在开发越来越多公司都使用版本控制工具 主流的两种:Git 和 SVN*** 一、Git 克隆项目:git clone xxx.git 创建分支:git branch daily/1.0.0 切换分支:git checkout daily/1.0.0 查看本地分支:git branch 查出...
  • Java 版本控制工具-Git 学习总结

    千次阅读 2017-04-15 18:24:36
    Java 版本控制工具Git学习总结
  • IDEA配置GIt版本控制工具在配置之前,需要先说明的是本机已经安装好了git版本控制工具。在菜单上上选择File,在下拉菜单上选择Settings在左侧列表中选择Version Control,在下面选择Git选择git安装目录中的bin目录下...
  • 版本控制工具VSS使用介绍

    千次阅读 2014-10-11 21:51:45
    什么是版本控制? 1.怎样对研发项目进行整体管理  ...2.项目开发小组的成员之间如何以一种有效的机制进行协调  ...3.如何进行对小组成员各自承担的子项目的统一管理  ...6. 对在研发过程中形成的软件...版本控制工具
  • Git 是一个分布式版本控制工具

    千次阅读 2016-07-31 23:45:30
    Git 是一个分布式版本控制工具前言:Git常用命令: 速查手册Git — The stupid content tracker(傻瓜内容跟踪器),Linus 是这样给我们介绍 Git 的。 Git 是用于 Linux 内核开发的版本控制工具。与常用的版本控制...
  • 各种版本控制工具的对比

    千次阅读 2018-02-23 18:04:59
    1.集中式版本控制工具 有 SVN, CVS, ClearCase 集中式版本控制工具,版本库是集中存放在中央服务器的,team里每个人work时从中央服务器下载代码,是必须联网才能工作,局域网或互联网。个人修改后然后提交到...
  • Git:源码安装版本控制工具Git

    万次阅读 2019-02-21 20:41:42
    Git:源码安装版本控制工具Git 1.下载源码 https://github.com/git/git https://www.git-scm.com/download/ https://mirrors.edge.kernel.org/pub/software/scm/git/ 我下载的源码是: ...
  • Mac下版本控制工具SourceTree的使用

    千次阅读 2017-05-24 22:35:30
    一、什么是SourceTree?SourceTree 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端,拥有可视化界面,容易上手操作。...简单点说SourceTree是跨Windows和Mac平台的一款版本控制工具。二、如何使用SourceTr
  • SVN版本控制工具

    千次阅读 2019-06-19 22:32:50
    SVN是一个跨平台的开源的版本控制系统。SVN版本管理工具管理着随时间改变的各种数据。这些文件放置在一个中央资料档案库中,并且SVN会备份并记录每一个文件每一次的修改更新变动。因此当开发过程中出现问题,可以...
  • 最好用的Unity版本控制工具

    千次阅读 2016-11-12 12:51:41
    自从来到现在的公司,负责Unity组开发以来,尝试了各种版本控制工具。从一开始的TortoiseSVN,到后来为了追求逼格使用Git,尝试了Github客户端和SourceTree,发现都有各种不爽。最后,发现还是Unity的亲儿子Asset ...
  • os-level版本控制工具

    千次阅读 2015-02-04 22:55:37
    声明:本博客欢迎转发,...OS-level版本控制工具如果我们需要对OS进行快照和rollback,那么我们可能需要使用的OS-level版本控制工具。SnapperOpenSuse的子项目。项目的目的是提供对Opensuse的快照,rollback,对安装进行
  • 史上最全Plastic SCM - Unity版本控制工具使用经验分享

    万次阅读 多人点赞 2020-09-01 19:01:18
    最近使用了Unity版本控制工具 Plastic,遇到了很多坑,总结一下使用方法、注意事项以及可能出现的问题。 其中有些报错暂未解决,希望知道的大佬能在下方评论,有错误的地方欢迎指正。 一、正常安装使用顺序 官网:...
  • 前面博文对git的使用做了...操作系统 win10 ,开发环境IDEA, 语言java, 版本控制工具Git。 git使用相关教程: git客户端下载安装:https://blog.csdn.net/qq_15903671/article/details/87966916 git bash 使...
  • 1.git版本控制 1.1版本控制 版本控制的英文名称为(Version Control System),主要有以下几个作用。 记录文件的所有历史变化 错误恢复到某个历史版本 多人协作开发编辑同一个文件 1.2主流的版本控制产品 ...
  • 版本控制工具Git详解(更新中)

    千次阅读 2014-11-18 21:54:18
    常用的版本控制工具SVN和Git,我想svn基本上过大学的都
  • 版本控制工具:SVN和Maven的区别

    千次阅读 2017-05-16 18:35:46
    构建工具—maven,版本控制工具—svn。 一、只有svn的情况   首先考虑没有maven的情况。这样的话,项目组每个开发人员,都需要在本地check out所有的源码。 每次提交之前,需要先更新周边工程的代码。...
  • 版本控制工具(CVS、SVN、GIT)简介

    千次阅读 2015-10-14 09:14:53
    1 版本控制工具的功能: 版本控制工具:  提供完备的版本管理功能,用于存储、追踪目录(文件夹)和文件的修改历史,是软件开发者的必备工具,是软件公司的基础设施。版本控制软件的最高目标,是支持软件公司的配置...
  • 版本控制工具SVN使用详细解析

    千次阅读 2016-05-17 11:34:19
    版本控制工具概述  svn是版本管理工具,主要帮助我们管理代码提交日志的。抛开系统来谈,svn分为服务端和客户端。就客户端而言,有很多第三方客户端,但是底层都是官方的命令行客户端。   在公司的开发中,我们...
  • 版本控制工具Git 常用操作命令

    千次阅读 2016-03-24 17:54:31
    Git 是用于Linux 内核开发的版本控制工具。与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。 Git 的速度很快,这对于诸如 Linux ...
  • 版本控制工具横向比较

    千次阅读 2006-09-26 16:35:00
    本文首先列举没有版本控制工具时可能遇到的问题,再对主流版本控制工具做概要介绍,之后对作为Java开发者首选的版本控制工具CVS的历史、功能、概念做详细的介绍;最后在Eclipse+CVS环境中,以CVS使用的一个完整流程...
  • IDEA中使用GIT版本控制工具 1. IDEA 中的配置git执行的对应路径 1)在 右上角的FIle中找到《Settings》- 《Vwesion Control》- 《Git》,选择git可执行文件的路径 2) 一般情况下按照正确的步骤配置,点击Test会弹出...
  • 版本控制工具是开发中必不可少的,常见的以及常使用的版本控制工具有git和svn。git是典型的分布式版本控制工具,不需要网络也可以提交代码,即每个设备都是一个仓库。svn是典型的集中式版本控制工具,即需要一个中心...
  • 什么是版本控制和版本控制工具

    千次阅读 2018-08-12 12:17:24
    版本控制: 是一种思想,因为每一个问题不可能在一次解决中找到完美的答案,即写项目的时候不可能做到一次性把代码写的不需要后期修改那样子优雅和完善,所以就需要对每一次自己思路和代码进行保留(而每一次提交或...
  • 废话不多说,今天小编手把手教你使用svn版本控制工具,包括服务端和客户端的配置。下载连接:一、首先配置服务端:1 安装服务端软件如上图msi文件安装。安装完成后,打开命令提示符 输入 svn 如下则成功,如不成功...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 717,994
精华内容 287,197
关键字:

版本控制工具