##引题
引题:课上的代码,讲师需要先打包,上传到公共的网盘(qq群文件),学生在下载。讲新知识后文件更新,每天都要重复这样的麻烦操作。
代码版本控制工具:专门负责代码的管理,除了上传、下载、同步。还需要查看代码修改了哪部分这类功能。
意义:跟英语一样是个工具,虽然没有他也可以编程。但代码版本工具会大幅提高工作效率;GitHub上能学习别人的代码。
##优势
1.记录每次代码变更的内容和时间点,如果代码崩溃或丢失,可以快速恢复到之前任意时间点版本。
2.多人协作。如果代码冲突可以直观看到解决。合并多人代码时方便。
###发展历程
1.软件项目较小,程序员自己写一个软件。
2.随着互联网发展,软件开始复杂。软件需要多人协作分模块开发。项目经理分配任务,各个程序员开发,开发好之后通过qq或u盘传给项目经理,项目经理合并代码。缺点,多个人修改同一代码,项目经理合并时容易出错或导致bug。
3.引入代码管理控制工具。代表SVN。曾经占据大部分市场。缺点:当时的程序员素质不高,用SVN同步文件而不是管理代码:SVN是中心化的,有服务器来保存代码和处理功能,如果服务器上的代码仓库意外损坏,客户机本地仓库也跟着无法使用。
4.现在市场最火的代码版本工具,git。优点:git去中心化的,每个客户机都保留着一个代码仓库,如果服务器的代码仓库被损坏,那么可以从客户机的仓库恢复;git的主要社区GitHub有大量的开源项目和开发者非常火热。
开源:open source,原来的软件公司,开发一个功能的软件,然后商业化卖钱。缺点:价格高,盗版多。 开源,软件代码共享出来,谁都可以看,谁都可以在他的基础上修改,甚至可以加工后自己在卖钱。人人为我 ,我为人人。免费、共享使得GitHub社区非常流行。目前的开源软件模式,前期免费、发展壮大、开发功能进阶版的收费企业版。
##学习建议
1.理解 本地、暂存区、提交 远程仓库。
2.先学基本命令,随着写项目慢慢熟练。先不要看高级命令,