在开发中,偶尔会遇到这样的情况
线上项目已经有支付宝在线支付功能,现在需要开发微信支付功能
开发中一共修改了两个文件:wechat.php和pay.php,每个文件都修改了多个地方,并且还没做测试,不能保证放到线上会不会影响到项目正常运行
这时突然发现支付宝在线支付功能存在一个bug,必须及时修复,需要改动的文件是alipay.php和pay.php
这种情况比较尴尬,做微信支付时已经修改了pay.php,修复线上bug也要改动pay.php,两者现在只能选则重要的一方进行继续操作,肯定首选修复线上的支付宝在线支付
这会导致原来的微信支付工作部分白做,有没有更好的解决方法呢?
答案是有的,做微信支付时,可以先把原仓库复制一份,在此副本中修改,不影响原仓库内容,全部修改完毕后,再把副本中的代码合并过去
这便是分支思想
git常见的master,表示代码的主干分支
事实上,在实际开发中,往往不会直接修改和提交到master分支上
而是创建一个dev分支,在dev分支上,修改测试,没问题后再把dev分支合并到master分支上
上文的解决办法就是:
在做微信支付时,创建一个wechat分支,把wechat分支commit,此时,master分支内容不会受到影响,因为分支不同
在修改支付宝在线支付bug时,创建一个alipay分之一,修复完成后,把alipay分支合并到master分支上
再次切换到wechat分支上,接着开发微信支付,开发完成后,再把wechat分支合并到master分支上
svn也能创建分支,原理是直接把项目copy一份,如果项目较大则比较费时费力,每创建一个都需要下载一次
git的分支原理较为现金,只记录变化,不用copy项目,所以git创建分支是秒级别的,很适合开发大项目使用
上一篇:GIT日志查看及版本切换
下一篇:Git分支管理