什么是版本控制和版本控制工具?

版本控制: 是一种思想,因为每一个问题不可能在一次解决中找到完美的答案,即写项目的时候不可能做到一次性把代码写的不需要后期修改那样子优雅和完善,所以就需要对每一次自己思路和代码进行保留(而每一次提交或修改都看作是一个版本,所以称之为版本控制)。就像工程设计领域中使用版本控制管理工程蓝图的设计过程,因为工程师不可以做到一次性把图纸画好一样。 在IT开发过程中也可以使用版本控制思想管理代码的版本迭代。

为了更好的解释版本控制的思想和用处,先模拟一个个人开发的场景进行分析:

public class processData{//上司让你写一个处理数据的类,只给了你这么多代码


}
//接下来你根据他给你的代码,添加了一个返回参数和的方法function1
public class processData{
    public int function1(int a, int b){//
        System.out.println("这里返回参数的和");
        return (a + b);
    }
}

 

//后期你觉得这个代码要修改,将返回和改成返回积
public class processData{
    public int function1(int a, int b){
        System.out.println("这里返回参数的积");
        return (a * b);
    }
}

 显然以上场景中,在第三组代码中,要将返回和改成返回积的时候,可以在第二组代码上进行修改,并且在第二组代码上修改的难度以及工作量也不是很大;也可以在第一组代码上进行修改。但是在第二组代码上进行修改之所以难度和工作量不大,是因为这里的代码比较少,就一个求积和求和之间的转换,但是如果说在开发过程中,为了实现一个功能,在原有的基础上进行实现此功能的代码的添加,但是添加之后发现这些所添加的代码 不可用或者说大部分都要修改的话,在现有的基础上去修改是非常麻烦的,而且会造成代码的可读性下降(改了改去到最后自己都被自己改的迷迷糊糊,这样子的代码别人看上去也肯定是没有条理得)。所以为了寻找更好的解决方式,于是乎:版本控制这一思想就出现了(也就是说,你每次提交代码之后,我都可以给你进行保存,而你接下来想要找到过去哪一个代码,直接拉过来看就OK了)

至于团队开发的场景,就和个人开发场景大同小异,都是为了记录下每次提交和修改的内容和人员等等信息;

例如对于一个文档在团队内做出的修改之后,其记录形式就如下图(这样子也可以避免在实际开发过程中因为很多人同时修改一个文档而造成的,因多人修改而造成的数据或者其他等等问题):

什么是版本控制和版本控制工具?_第1张图片

版本控制工具:  用于实现版本控制这一思想的工具;这种控制工具大致分为集中式版本控制工具(CVS ;SVN ;VSS)和分布式版本控制工具(Git and so on)。

你可能感兴趣的:(Git和GitHub)