svn有哪些优点和缺点?
git有哪些优点和缺点?
git最突然的优点就是gitflow,开发新的功能都是开一个新分支feature,完成开发新特性,合并到develop分支;提交测试也是新增一个分支release,测试没有问题了,然后归并release分支到develop和master分支。
参考
http://danielkummer.github.io/git-flow-cheatsheet/index.zh_CN.html
http://zengrong.net/post/1746.htm
http://www.eclipse.org/egit/
http://blog.csdn.net/fbysss/article/details/5437157
gitflow中feature和release分支最后都要删除掉。
如果master分支(线上)出现紧急bug,开一个hotfix分支修复,将修复之后的代码合并到develop分支,但是还需要验证,如果都在develop分支上开发,develop分支上有很多没有验证的代码,这个时候怎么测试?怎么办?没法测试。所有开发新的功能时,需要开新的feature分支,然后统一合并到develop分支。
如果release分支出现严重的问题,修复之后合并代码到develop分支,如果都在develop分支上开发,develop分支上有很多没有验证的代码,这个时候怎么测试?怎么办?没法测试。所有开发新的功能时,需要开新的feature分支,然后统一合并到develop分支。
这是一种规范。
分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了(一种是需要提交的文件很多,某些文件忘记提交,导致对方系统报错,无法启动)。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。