重构
最新在对之前开发的一个美食类的小程序《今天吃什么星人》做重构。这个是我做的头一款小程序,基于labrador框架来开发的。小程序开发上架之后,就没再动过。后面大家发现这款小程序慢慢有点人气,打算拿出来再优化优化看看
大家重新设计了首页和美食页,然后轮到我这边来开发。
从初次开发到这次打算改版,已经又进行过三个小程序的开发,也算积累了不少经验。labrador,
这三款比较流行的框架都有接触和使用,其中最喜欢的算是mpvue了。
这次的改版,改动没多大,主要在UI上,所以是没打算做架构上的大改动。可是重构的时候遇到一些编译上的问题解决不了,而labrador已经被开发者放弃,好几个月没更新了。再想想这个项目后续可能还会有不少的改动。最后还是决定使用mpvue来改写一遍。
重构的时候,考虑到需要参照着之前的代码来改,就没用git checkout --orphan
这样的方式新建分支,而是单独新建了一个同级文件夹来放置新代码。这样新旧代码可以同时参看,也可以使用微信开发者工具同时预览效果对比
代码提交
很快,整个项目重构完成了。这个时候,想往之前的项目里面新建一个new
分支,把当前的新版的master
分支提交过去。
一开始执行的git push;git push --tags
, 提示No configured push destination
这才想起来,忘记配置项目的远程分支了:git remote add origin git@git.coding.net:xxxxx.git
然后再执行git push
,提示被reject了。
直接git push,默认是推送到origin的master分支,这两个版本的分支进度不一样,所以被拒绝了。
调整命令,改成git push origin new:master
。意思是推送本地的master分支到origin端的new分支
推送成功,到coding的后台一看,也有新分支了。代码算是初步提交成功
后续优化
接下来,执行git branch -u origin/new
使得本地的master分支能跟踪origin端的new分支,这样pull的时候,能顺利拉取。
完成之后,再尝试了一次git push
,发现还是reject,原来是我的全局git配置里面配置了git.default 为 current。其作用是设定git push的默认行为是把当前分支推送到origin端同名的分支。所以在当前场景下,就会被reject
但是我又不想修改全局的配置。好在git是可以按项目来单独配置并覆盖全局配置的
执行git config push.default upstream
,这样就使得git
push的默认行为是推送到跟踪的远端分支
再执行git push
,提示Everything up-to-date
,成功!
参考资料:
- https://stackoverflow.com/questions/948354/default-behavior-of-git-push-without-a-branch-specified
- https://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E8%BF%9C%E7%A8%8B%E5%88%86%E6%94%AF
- https://gist.github.com/seanbuscay/5877413