Powered by Typecho)))
Optimized by EAimTY
有时候我们希望只合并某个分支上的某次修改commit到指定的分支上,而不是全部。那么就可以使用cherry-pick命令来操作了.
使用git log 查看提交的信息,记住commit id.
git checkout 要合并的目标分支
git cherry-pick 某个commit id // 把某个commit id的提交合并到当前分支.
例如develop分支上得某个fix修改36d7da2,要合并到release分支
git checkout release
git cherry-pick 36d7da2
36d7da2 就被合并到release分支,并在release中添加了新的commit(作为一个新的commit)。cherry-pick 和merge比较类似,如果git不能合并代码改动(比如遇到合并冲突),git需要你自己来解决冲突并手动添加commit。
在一些特性情况下,合并单个commit并不够,你需要合并一系列相连的commits。这种情况下就不要选择cherry-pick了,rebase 更适合。还以上例为例,假设你需要合并feature分支的commit 76cada ~62ecb3 到master分支。
首先需要基于feature创建一个新的分支,并指明新分支的最后一个commit:
git checkout -b newbranch 62ecb3
然后,rebase这个新分支的commit到master(--onto master)。76cada^ 指明你想从哪个特定的commit开始。
git rebase --onto master 76cada^
转自:https://blog.csdn.net/anhenzhufeng/article/details/77962943
大部分时候,两个大表做join的时候,where条件前置不但可以节省扫描行数,还能避免创建磁盘临时文件:
优化前:
SELECT g.goods_id, g.add_time, g.goods_name, g.market_price, g.is_new
, g.is_best, g.is_hot, g.shop_price AS org_price
, IFNULL(mp.user_price, g.shop_price * '1.00') AS shop_price
, g.promote_price, g.promote_start_date, g.promote_end_date, g.goods_thumb, g.goods_img
, g.goods_brief, g.goods_type
FROM `ecshop`.`fp_goods` g
LEFT JOIN `ecshop`.`fp_member_price` mp
ON mp.goods_id = g.goods_id
AND mp.user_rank = '1'
WHERE (g.is_delete = 0
AND g.is_on_sale = 1
AND g.is_alone_sale = 1
AND 1)
ORDER BY goods_id DESC
LIMIT 200, 40