Source code control 一直是软件开发过程中重要的环节,从最初的纯文件备份,到使用工具进行管理。Source code control 工具的作用也不仅仅只是单纯的对同一个版本进行管理了。从目前主流的source code control工具当中不难发现里面的Branch, tag等功能的应用场景越来越多,特别是现在多数企业使用的敏捷编程,结合branch和tag等功能真的能够很好的做到多版本开发,快速迭代。
回过头来说下本人在行业当中所用到的几款source code control工具。 VSSVSS(Visual Source Salf),是一款微软提供的代码管理工具,作为Visual Studio的一员,在早期的开发过程当中确实能够确保代码不被开发人员错误的修改,也解决了异地开发协作的代码共享管理的难点。但是依旧有一些不足,比如:
SVNSVN(Subversion),一个开源的source code control system。除开最基本的如VSS提供的代码管理功能外,最大的亮点是提供了分支,且提交内容的级别基于代码行了。也就是说,不用再有独占文件开发的问题了。比如,一个实现接口的代码文件可以由多个开发人员同时修改。谁先做完谁可以先进行提交,不会等到必须所有的人做完后再进行合并。对于不能使用VSS的工程师来说,SVN的出现完全是一个福音,直接从CVS跳到了这么强大的工具上。
Git随着开源运动的流行(Liunx开发人员的功劳),Git也就这么流行起来的。说是在随着开源运动的流行而流行起Git的呢?这归功于Git的分布式这一特性。试想,如果全世界所有的Liunx爱好者都在几台机器上进行开发和提交,这酸爽不敢想象。抑或是主服务器崩溃了,那么其他的开发人员也只有泪奔。
git-model@2x.png A successful Git branching model 如何使用Git
. Best practice建议使用github进行上手实验。使用邮箱注册一次Git hub后即可在Github上创建自己的Repository. 2.png 创建完成后,我们会得到一个Repository的地址。有了这个地址我们就可以进行Git的练习了。 3.png
5.png
echo "Hello Scott" -> "Hello" //写了一个文件到Hello git add Hello // 将Hello文件添加到暂存区。(Index) git commit -m "this is my first file" // 提交到本地仓库 git push //推送本地仓库到远程仓库 6.png 以上,文件就被推送到了远程仓库。其他工程师如果执行Pull操作的话即可把变动的文件拉到本地。 7.png
A5B85BFD-764E-468F-81C4-0B727BA70428.png
4EB9EB75-2FF9-4363-AD78-9E13D1415EA8.png
10.png 一般手动解决冲突后,重新添加,提交,push即可。 11.png
分支的管理在很多时候会遇到同时需要开发多个功能,开发任务将会交给多个工程师进行开发,这个时候在Git上的实践为-->创建多个分支。 N个工程师从Master或Dev分支进行分支创建。 git checkout -b NewFeature // 分支建好后,会直接切换到该分支。git push --set-upstream origin NewFeature //与远程分支关联 完成开发后,需要合并到Master 或Dev 分支。 git merge origin/NewFeature // 将远程分支NewFeature与当前分支合并。 12.png
|
|