打开知乎、微信这些平台的时候,经常就有意无意冒出来「一部手机怎么赚钱?」、「有什么好的手机赚钱软件?」这一类标题的文章。抖音信息流广告中也有很多类似的台词,「只需一部手机,一件代发,不需要囤货,挑战月入上万」这类广告词都是带你开一个网店,「一部手机,每天只需两小时,一个月轻松回本,开启财富自由模式」......
上面提到的那些模式有没有赚到钱的?有,而且还不少。但是拿到你手里能不能赚钱?基本不能!90% 以上的人都是在交智商税,或者是因为执行力不够强,自己没有坚持下来,真正赚了钱的普通人少之又少。这一篇文章不玩套路,分享一个任何人可以套利的模式,也就是上面提到的普通人如何用一部手机赚钱?
先把答案放到前面:撸货,这里以市面上比较火热的飞天茅台为例。相信绝大部分人都知道茅台吧,稍微有一点点了解的人就会知道飞天。百度一下飞天茅台的一点点信息,它的出厂价 900 元,再去淘宝、京东这些平台查一下它的价格,茅台官方自营、京东官方自营、天猫超市等是 1499 元一瓶,普通商家卖的都是 2500 元以上一瓶。
所以这就看到了套利空间了吧?出厂价不要想了,你肯定拿不到那么低的价格的,要是你能拿到出厂价的价格我们可以做个微信朋友吗?悄悄的留下自己的微信号:Guanngxu。那第二档的价格就是天猫超市、京东这些平台的 1499 元一瓶了,这正是我这篇文章所要写的内容了。茅台是硬通货不用担心卖不出去,只要你手里有茅台就不用怕砸钱,当然前提是你入手的成本不高啊。可怜我之前只知道陪房东、陪老叔喝茅台,居然完全不知道这里面有这么大的套利空间,感觉错过了几个亿。
那么都有哪些地方可以抢茅台呢?京东、天猫、淘宝这种大家都知道的平台就不用说了,只是基本都需要会员才能抢,觉得开会员的成本比较大?那这时候就可以去找一找低价的渠道了,比如说一些兑换码什么的,还有一些银行和京东的联盟信用卡,当然你也可以联系我呀!
还有一些大家可能会忘的渠道,比如说正在慢慢退出大家视野的苏宁易购,比如说很多人都没有用过的国美 APP,还有更少人知道的酒仙网、华润万家、山姆会员店这些。这些可能都需要开通会员才行,怎么开通呢?比如下面这个小程序二维码可以开通国美的会员,你也可以直接在 APP 里面开通会员,也可以找找别的渠道。
所以有这么多的平台可以去预约茅台,你只需要稍微研究一下平台每天放量的时间点,列一个表然后按照时间去抢就行了,抢得到抢不到就看运气呗。但是成年人的事情不能只靠运气啊,没有运气也要创造运气嘛。把自己的七大姑八大姨都整上,大家一起去抢茅台。
这里就是看你人品的时候了,懂得把利益分享给他人你才会有更多的收获,钱是眼睛能看到的利润,但是还有更多眼睛看不到的利润,比如找别人帮忙就给别人发个红包,别人给到你一个启发、一个以前不知道的信息,给别人发一个红包,这些简单的细节可能逐渐得到对方的信任,因为眼前这个人知道的远比你想象的要多得多,他在自己的领域至少是个小狄公吧。
除了这些平台还有一些其它线下的平台,这种有一点点地方特色了,比如我现在人在成都,前天去红旗连锁超市买水,发现它的门上贴了一个海报,说积分达到 2000 就可以预约一瓶茅台,积分达到 4000 可以预约两瓶茅台。这种小渠道更多的是靠自己去发现,相比京东一类的大平台,小渠道抢到的概率也更大一些。
在哪里抢茅台,怎么去抢的问题都解决了,还有一个钱的问题啊,毕竟需要的本金可是不少的啊!这个就更容易解决了,上面已经提到过信用卡了,去申请一个信用卡就可以轻松解决资金的问题了,而且一些联名卡还可以顺道解决平台会员的问题。
信用卡除了资金的问题可以解决外,还会带来很多附加的价值,比如我今年一年的话费没有花自己一分钱,全是用平安银行信用卡的积分换的,还有每个月可以兑换的爱奇艺会员,虽然我一直没有用爱奇艺。比如我现在盖的被子、用的体重秤和收纳箱是用招商银行积分换的,找亲朋好友推荐办信用卡还有推荐礼,这也是一部分可以薅的羊毛,当然你愿意找我的话也是非常乐意的。
这里还有一个问题,学生群体很多银行都是批不了信用卡的,我知道招商银行信用卡学生是可以申请的,信用卡的玩法有很多很多,那些羊毛尤其迎合了喜欢占小便宜的人性特点,如果玩的好的话免费坐坐飞机、住住酒店也是可以的。
假设你现在抢到了茅台,怎么出手呢?身边那些卖酒的商铺、一些老板等等,也有很多人专门加价收购茅台,比如我自己一个大学同学,3000 抢了两瓶茅台,转手 4700 就被人家给买过去了,简直太抢手了。
上面的内容都是以茅台作为例子的,其它还有很多商品也基本是一样的套路,比如下面截图这个篮球。还有其它 Nike 鞋、纪念币这些都是一样的。写到这里一个普通人可以套利的回路差不多就完成了,基本就是一个手机就可以了,如果想扩大收益那就是多个账号一起来。
Read More ~
财富与幸福指南
若没有在段落文字后面做特别标注,那该段落即摘录自The Almanack of Naval Ravikant: A Guide to Wealth and Happiness
There’s no shortcut to smart.
聪明没有捷径可走
The fundamental delusion: There is something out there that will make me happy and fulfilled forever.
最基本的错觉: 有些东西会让我永远快乐和满足
Hard work is really overrated. How hard you work matters a lot less in the modern economy. What is underrated? Judgment. Judgment is underrated.
在现代经济中,努力工作的重要性大大降低了。什么被低估了?判断,判断被低估了
Spend more time making the big decisions. There are basically three really big decisions you make in your early life: where you live, who you’re with, and what you do.
花更多的时间做重大决定。在你的早期生活中,基本上有三个真正重大的决定: 你住在哪里,你和谁在一起,你做什么
Stay out of things that could cause you to lose all of your capital, all of your savings. Don’t gamble everything on one go. Instead, take rationally optimistic bets with big upsides.
远离那些可能导致你失去所有资本、所有储蓄的事情。不要一次性赌光所有的东西。取而代之的是,理性乐观地下注,并从中获得巨大的好处
Don’t partner with cynics and pessimists. Their beliefs are self-fulfilling.
不要和愤世嫉俗者和悲观主义者合作,他们的信仰是自我实现的
You’re not going to get rich renting out your time. You must own equity—a piece of a business—to gain your financial freedom.
出租你的时间是不会致富的。你必须拥有股权,一项业务,才能获得财务自由
Follow your intellectual curiosity more than whatever is “hot” right now. If your curiosity ever leads you to a place where society eventually wants to go, you’ll get paid extremely well.
比起现在所谓的「热门」 ,应该更多地追随你的求知欲。如果你的好奇心曾经引导你到一个社会最终想要去的地方,那么你会得到非常好的报酬
The less you want something, the less you’re thinking about it, the less you’re obsessing over it, the more you’re going to do it in a natural way.
你想要的东西越少,你对它的思考就越少,你对它的困扰就越少,你就会越自然地去做它
Learn to sell. Learn to build. If you can do both, you will be unstoppable.
学会销售,学会建设,如果你能同时做到这两点,你将不可阻挡
If you secretly despise wealth, it will elude you.
如果你私下里鄙视财富,它就会躲避你
Arm yourself with specific knowledge, accountability, and leverage. Specific knowledge is found by pursuing your genuine curiosity and passion rather than whatever is hot right now. Specific knowledge is knowledge you cannot be trained for.
用具体的知识、责任感和影响力武装自己。具体的知识是通过追求你真正的好奇心和激情而不是任何现在热门的东西找到的。具体的知识是你不能被训练的知识
If they can train you to do it, then eventually they will train a computer to do it.
如果他们能训练你做一件事,那么最终他们会训练一台电脑来做这件事
Apply specific knowledge, with leverage, and eventually you will get what you deserve.
运用特定的知识,利用杠杆作用,最终你会得到你应得的东西
You should be too busy to “do coffee” while still keeping an uncluttered calendar.
你应该忙得没时间“喝咖啡” ,同时保持日程表整洁
There are no get-rich-quick schemes. Those are just someone else getting rich off you.
没有快速致富的计划,那些只是别人从你身上赚钱而已
Code and media are permissionless leverage.
代码和媒体是未经许可的杠杆
People who live far below their means enjoy a freedom that people busy upgrading their lifestyles can’t fathom.
那些生活水平远远低于自己收入的人们享受着一种自由,这是忙于提升自己的生活方式的人们所无法企及的
By the time people realize they have enough money, they’ve lost their time and their health.
当人们意识到他们有足够的钱时,他们已经失去了时间和健康
To have peace of mind, you have to have peace of body first.
为了拥有内心的平静,你必须首先拥有身体的平静
The more secrets you have, the less happy you’re going to be.
你的秘密越多,你就越不快乐
No exceptions—all screen activities linked to less happiness, all non-screen activities linked to more happiness.
毫无例外,所有的屏幕活动都与较少的快乐有关,所有的非屏幕活动都与较多的快乐有关
Inspiration is perishable—act on it immediately.
灵感是易逝的,所以立即付诸行动
To make an original contribution, you have to be irrationally obsessed with something
为了做出原创性的贡献,你必须非理性地沉迷于某些东西
If there’s something you want to do later, do it now. There is no “later.”
如果你以后有什么想做的事情,现在就应该去做,没有「以后」
Courage isn’t charging into a machine gun nest. Courage is not caring what other people think.
勇气不是冲进机关枪的巢穴,而是不在乎别人的看法
Happiness is a choice you make and a skill you develop.
幸福是你的选择,是你发展的一项技能
Your brain is overvaluing the side with the short-term happiness and trying to avoid the one with short-term pain.
你的大脑高估了短期的幸福,却试图避免短期的痛苦
Envy is the enemy of happines.
嫉妒是幸福的敌人
Honesty is a core, core, core value.
诚信是一个非常,非常,非常核心的价值观
where you build a unique character, a unique brand, a unique mindset, which causes luck to find you.
你要建立一个独特的个性,一个独特的品牌,一个独特的心态,这会让好运气找到你
Figure out what you’re good at, and start helping other people with it.
找出你擅长的东西,然后去帮助他人
If you are a trusted, reliable, high-integrity, long-term-thinking dealmaker, when other people want to do deals but don’t know how to do them in a trustworthy manner with strangers, they will literally approach you and give you a cut of the deal just because of the integrity and reputation you’ve built up.
如果你是一个值得信赖的、可靠的、正直的、有长远眼光的交易者,当其他人想做交易,但不知道如何以值得信赖的方式与陌生人做交易时,他们会真正地接近你,并和你进行交易,仅仅因为你已经建立起的诚信和声誉
All benefits in life come from compound interest, whether in money, relationships, love, health, activities, or habits.
生活中所有的好处都来自于复利,无论是在金钱、人际关系、爱情、健康、活动还是习惯上
Productize yourself
将自己产品化
It’s only after you’re bored you have the great ideas. It’s never going to be when you’re stressed, or busy, running around or rushed.
只有当你感到无聊的时候,你才会有好的想法。当你感到压力,或者忙碌,到处跑或者匆忙的时候,这些都不会发生
Play stupid games, win stupid prizes.
玩愚蠢的游戏,赢得愚蠢的奖品
Clear accountability is important. Without accountability, you don’t have incentives. Without accountability, you can’t build credibility. But you take risks. You risk failure. You risk humiliation.
明确的问责制很重要。没有责任感,你就没有动力。没有责任感,你就无法建立可信度。但是你要冒险,要冒着失败的风险,冒着被羞辱的风险
The best jobs are neither decreed nor degreed. They are creative expressions of continuous learners in free markets.
最好的工作既没有规定也没有程度,它们是自由市场中不断学习者的创造性表现
Reading is faster than listening. Doing is faster than watching.
读比听快,做比看快
Explain what you learned to someone else. Teaching forces learning.
向别人解释你学到了什么。教学是学习的动力
Read what you love until you love to read.
读你喜欢的东西,直到你喜欢阅读
Better is the enemy of done.
完成比完美更重要
Angela Zhu 摘抄
If you did not make yourself well understood, it is your problem.
如果别人没有听懂你在说什么,一定是你的问题
Angela Zhu 摘抄
Inspire your people do things, not tell your people do things.
不断激烈启发你的组员做事,而不是告诉他们做什么
Angela Zhu 摘抄
It does not matter what was your motivation, it only matters how this make your direct reports feel.
你的出发点不重要,重要的是你让别人感觉你想干什么
Angela Zhu 摘抄
尽可能帮助和服务别人,建立信任,赢得资本
Angela Zhu
To learn something, you should do not reread, summarize and teach it out loud.
要想学点东西,你不应该重读、总结和大声教出来
http://www.toolkiit.com/
在人生最好的年纪,应该少一点算计,多一点洒脱。遇到喜欢的人就去相处,去恋爱,不要辜负自己的时光,然后人生就会给出你更多的可能性
Fenng
你心里应该有爱,应该有为了爱去放弃一些东西的勇气。如果你做不到这样,那我觉得你很可悲。或者,会成为一个精致的利己主义者,体会不到人生的幸福,和真正的生活的勇气
Fenng
电话、视频会议,线下会议、面对面交流的时候,这是同步事件,需要一定程度上近乎实时反馈。而短信、微信消息、语音消息、留言、邮件,这些都是异步事件,用固定的节奏批量处理就是了
Fenng
When you are old and gray, and look back on your life, you will want to be proud of what you have done. The source of that pride won’t be the things you have acquired or the recognition you have received. It will be the lives you have touched and the difference you have made.
当你白发苍苍、垂垂老矣、回首人生时,你需要为自己做过的事感到自豪。物质生活和满足的占有欲,都不会产生自豪。只有那些受你影响、被你改变过的人和事,才会让你产生自豪感
Steven Chu 2009 年哈佛大学毕业演讲
In your collaborations, always remember that “credit” is not a conserved quantity. In a successful collaboration, everybody gets 90 percent of the credit.
合作中,不要把功劳都归在自己身上,在一场成功的合作中,每个人都应该获得 90% 的荣誉
Steven Chu 2009 年哈佛大学毕业演讲
Read More ~
说一下戴牙套的感受
快要离开深圳时候和老叔一起吃饭喝酒,老叔看着我突然来了一句:“小刘啊,那个你年终奖也发了,你回去把你的牙齿弄一弄,把那个缝关上,不然你的命就一直不好,漏财!”
说实话,我以前从来没有想过自己的牙齿,还一直觉得自己的那个缝好玩,小时候还常借助门牙那个缝隙,加上自己的舌头抵压,压力会让口水从牙缝挤出去,达到喷射的很远的效果,为数不多的几次口水战我都比较占优势。
可以但是经叔叔这么一说,我再照镜子时候就不再觉得它好玩了,越看越不美观了。所以有事没事的时候会忍不住去查查正畸方面的信息。回到成都后老叔还是经常给我打电话,每次视频的时候老叔看到我没有戴上牙套就会骂我催我,本来想回到成都就把老头给糊弄过去算了,但自己却是越看越不美观。
从有矫正的想法到真正戴上牙套中间经历了半年的时间,这半年时间就是查查网上的资料,问问身边有做过正畸的朋友,当然还有一个重要的事情是了解各种正畸方案的价格,像什么陶瓷自锁、金属自锁、隐适美等等,其实这些乱七八糟的事情都是一个心理建设的过程,要突破这个心理障碍还真不容易。
到现在我已经戴了快一个月的牙套了,刚开始戴上那几天会很疼,连话都不想说。我戴的是进口金属自锁那种大钢牙,刚开始上面那个金属丝还老是滑动容易戳我口腔,如果滑动的不太多我就自己把它拨回去了,如果滑动的太多了就到诊所那里去让牙医搞定,我到诊所就 3 分钟的路程,这一点还是非常便利的。
做矫正这个事儿可能很多人都觉得麻烦,不能随便吃东西,每吃一顿饭就要刷牙,而且一个大钢牙在嘴里还很丑,牙齿也疼.........就干脆放弃了,但是以我这一个多月的感受告诉你,戴牙套的好处要大于太多坏处。
人人都想减肥却又管不住自己的嘴,很多人在睡前总是想吃点东西,导致体重增加的非常快,尤其很多所谓无法推脱的社交饭局经常吃到半夜一两点,戴上牙套之后保证你能管好自己嘴,我自己戴上牙套不到一个月已经瘦了 4 斤多了,这是戴牙套之前没有想到的意外收获。
当然,更加具体的实施方案还得取决于自己的牙齿具体情况,有的人做矫正可能还需要拔几颗智齿,可以顺道消除智齿发炎的地雷。另外一个拔智齿的好处可能会让仙女们比较开心,那就是智齿拔了脸会变小啊,哈哈哈哈哈!!
对我个人来说还有另外一个好处,那就是每天只能吃很少的东西怎么才能让自己更健康的成长,所以抓紧时间去看了《你是你吃出来的》这本书,才知道自己以前对于营养的认知是多么浅显,我忍不住想要对正在看文章的你做个简单的科普!
我们吃东西不仅要关注能量,更要注重七大营养素(碳水化合物、脂类、蛋白质、维生素、矿物质、水、膳食纤维)。像鸡蛋、牛奶、蔬菜、水果、坚果、肉类、(深海)鱼、动物肝脏等,都需要均衡摄入。《你是你吃出来的》一书中做了大量苦口婆心的讲解,也纠正了大家平时的一些错误观点,比如很多人生病了不舒服就咸菜加上喝白粥打发,觉得浓浓的白粥里面很有营养,实际上白粥是没有什么营养的;很多地域晚上都习惯吃面食,因为面食比较容易消化,但面食里面的主要要成分是碳水化合物,非常容易让你血糖快速的升高,碳水化合物摄入过多的结果只会让你越来越胖。
牙套在嘴里也不太好咀嚼,之前又看到朋友圈的人推荐「若饭」,正好趁这次机会尝试了一下若饭,口味什么的并不是多好,但液体版的若饭对我来说很方便,像考研党、工作狂或者其它比较忙的人,可以买一点若饭在那里备着,一分钟的时间就能解决一顿饭,比上个厕所都要快的多。
若饭是一种高密度的营养餐,我们大多数人可能觉得自己平时吃的很健康,但估计现实情况和自己认为的恰好相反,比如中国人基本对钠盐的摄入都严重超标,很多人都摄入了太多的碳水化合物,可以看若饭的营养成分表,各方面还是基本兼顾到了的。若饭不仅有液体版,同时也有粉末版供你选择。
当然如果能吃到天然的食物最好吃天然新鲜的食物,像若饭这样直接对标美国 Soylent 的产品也不可能全方面兼顾到,比如长期食用可能会影响肠胃功能(我猜的),所以经常吃吃水果、坚果这些小零食,没事儿的时候约几个朋友散散步,偶尔来一顿美食大餐是绝对有必要的。
最后再推荐你看一个一席的演讲视频:减盐这件大事
Read More ~
扒一下网店代运营公司的套路
前段时间,一个朋友给我发了一个抖音视频,视频是深圳龙岗公安发布的他们抓捕代运营诈骗公司的一些场景,我在龙岗政府在线网站上也看到了这个事件的新闻:9000元请人代运营,只换来几条教学视频,深圳网店主报警。有天傍晚,我独自坐在楼下公园的椅子上看书看电影,无意中被刚下班的牙科医生碰到了,他就坐了下来和我一起聊天,很自然就聊到了他的大众点评店铺的推广,告诉我他接到过好多代运营公司的电话,他自己差点就要给其中一个公司交钱了。
咱们先来看一下在百度搜索「网店代运营」的结果,前五条全部都是广告。在抖音短视频信息流广告中,代运营的广告也是不计其数。其它像快手、神马搜索这些产品中也充斥这种代运营广告,这么庞大的广告投入背后一定是有暴利,我这里只是把我知道的代运营套路写出来,如果能让一个人止步骗局那就是没有白写的。
一般会去找代运营的商家基本都是新手,自己正为店铺没有销量而发愁,现在有家公司告诉你只需要每个月交多少运营费用,自己只负责客服和发货就行了(甚至客服都不用负责),看到市面上有这样好的服务你能不心动吗?而且他们还重点给你强调公司主要是靠运营店铺销售额的提点来盈利,在签合同的时候销售还故意在起提基数和标准上表现出很强硬的态度,这无疑会更加增加商家的信任,但这都不过是骗局的开始。
找代运营的群体里面还有一大部分是想发展一个副业的白领、空闲时间比较多的大学生和宝妈,这部分人是很纯正的网店小白,不知道怎么注册网店(不需要多高级的搜索技巧,百度随便都能搜到),不知道怎么上架商品,自己没有货源不知道该怎么办,我这里拿没有货源来介绍一下代运营公司的销售话术。
如果对方不知道「一件代发」这个事情,那么销售可能会这样说:“您这边没有货源没有关系,我们公司是做这个的,我们不仅对接了很多的优质厂家,而且我们自己也有大量的货源,都是可以免费为您对接货源的。”如果对方知道一件代发这个东西的话,那就直接给他说一件代发就好了。
有了货源之后要卖什么产品呢?这个你是不是也很迷茫?好了,他们一般应该会给你做一场比较「专业」的图文并茂的市场分析,女性群体的基数大、网购行为多、她们的钱好赚,反正最终分析下来的结果就是卖女装很合适。注意,代运营公司对所有咨询如何开网店的客户都是这样说的,因为他们制定了一套非常标准的销售流程,那些话术只需要复制粘贴即可,反正最终都会引导到卖女装去。
经过一番折腾总算把网店开起来了,有一点良心的代运营公司还有专门的美工给你做一套主图和详情图,没良心的公司顶多就是在网上扒拉几张图片扔给你,甚至从网上不知道哪里卖的几节课程发给你。产品也都上架到店铺了,但只是上架商品的话店铺连访问量都没有,怎么可能会有销量呢?
这时他们的「运营师」就会给你出一套针对你店铺的运营方案了,和前面介绍的怎么引导到都卖女装是一样的套路,所有的客户都是同一套话术引导到店铺要继续做推广的方向上去,简单说就是得继续交钱!他们可能会这样说:“我们公司和百度、搜狐、头条等互联网公司都是有合作的,我们会支付给这些平台大量的钱帮助我们的店铺去发软文,这样您相比其它商家的优势就不仅仅只有淘宝(拼多多)平台内的流量了,其它像抖音、百度这些平台的流量都会进到您的店铺,您想一下这是多么庞大的流量和优势!”
实际上代运营公司只是专门针对你店铺内容写了一篇软文,然后再用百家号、头条号、搜狐号等发了几篇文章而已,这就是他们所谓的「和百度、搜狐、头条等互联网公司都是有合作的」。为了让你相信这些软文真的生效了,一般会用一些平台去给你的店铺引流,比如新韵网和小老弟网红助手,如果你相信了确实是他们的软文推广效果生效了,那你离下一次交钱的机会就不远了。
除了这种软文投放的方式还有另外一种销售流程:“因为您的店铺是新店铺,那些基础数据都不好,我们这边可以通过技术手段帮您把店铺基础数据弄好,这样店铺的基础数据上去了之后就可以报官方的一些活动,获取到官方的流量扶持......”。这个在之前写的如何空手利用拼多多(淘宝)赚钱套利?中有介绍如何修改店铺销量,像店铺收藏、商品收藏等也是可以通过上面介绍的新韵网和小老弟网红助手来购买的,成本就几百甚至不到一百,但是可能收你几千甚至几万的服务费。
这些代运营公司大部分都是在抖音上面投放的广告,体量大一些的公司会在百度投放广告。记得之前在刘鹏老师的星球看到一个投放广告的逻辑:先用极低的价格卖 A 罩杯内衣,然后向这批用户推丰胸产品。最近也看到一个代运营公司搞了个门槛很高的投放方式,自己开发了一个展示货源和网店课程的 APP,然后广告投放方式是推广这个 APP,这样就避免了和其它同行竞争表单还起不来量,而且会主动注册他们 APP 的人意向也比较大,起到了一次清洗客户的作用,听说他们这种 APP 推广的方式线索成本还不到二十,而大多数代运营公司的表单成本已经到了一百多。
上面说了那么多都是电销的模式,可能你会想自己实地去考察肯定就不会被骗了吧?现实情况是他们欢迎你到公司实地考察,他们有现成的店铺数据这些给你看,而且实地看到他们公司各个团队之间的协作可能会让你被骗的更深,面销会忽悠的更加伤人。
可能很多人第一下想到的是报警吧,但实际上报警的作用不是多大,首先双方是有签署合同的,所以这只能算作经济纠纷不属于派出所管辖范围。即使公安局那边立案了,整个过程估计也会把你的耐心给磨没了,破案后你损失的金额能拿回来的可能性也不大。这里只告诉大家「消费者协会」和「市长热线」是比较值得信赖的。
总还是觉得中国是人口基数太大了,七八亿的网民里面傻子实在太多了,那些天天只知道刷抖音,梦想着如何快速发财,梦想着如何不劳而获的人,正是代运营公司的潜在客户,人性都是贪婪的,销售稍微帮你放大一下你的贪婪你就输了。
Read More ~
Schema 与数据类型优化
参考内容:
《高性能 MySQL(第三版))》
选择优化的数据类型
世面上常见的数据库大多支持了多种多样的数据类型,选择正确的数据类型对于获得高性能至关重要,一般都需要遵循如下的几个原则:
更小的通常更好:更小的通常更快,因为占用着更少的磁盘、内存和 CPU,并且处理时需要的 CPU 周期也更少;
简单就好:简单数据类型的操作通常需要更少的 CPU 周期;
尽量避免 NULL:如果查询中包含可为 NULL 的列,就会使得索引、索引统计和值比较变得复杂,因此在设计表是最好指定列为 NOT NULL。
整数类型
在 MYSQL 中可以为整数类型指定宽度,例如INT(11),但是这对大多数应用是没有意义的,它不会限制值的合法范围,只是规定了 MySQL 的一些交互工具(如 MySQL 命令行客户端)用来显示字符的个数。对于存储和计算来说INT(1)和INT(20)是相同的。
字符串类型
需要注意的是当 MySQL 存储 CHAR 值时,它会删掉所有的末尾空格,因为 CHAR 值会根据需要采用空格进行填充以方便比较,这导致的问题就是你使用 CHAR 存储的string 会变成string。CHAR 的好处在于它是定长的,很适合存储像 MD5 值一样的定长值,定长值的 CHAR 类型不易产生碎片,而且对于非常短的列 CHAR 也会比 VERCHAR 好,比如CHAR(1)只需要一个字节,而VERCHAR(1)则需要两个字节,因为它还需要一个字节来存长度。
VERCHAR 类型在存储可变长字符串时,会比 CHAR 更节省空间,它需要使用 1 或者 2 个额外的字节记录字符串的长度。但由于行是变长的,当一个行占用的空间增长,并且在页内没有更多的可用空间可以存储,就容易产生碎片。
使用枚举代替字符串
有时候可以使用枚举列代替常用的字符串类型,枚举列可以把一些不重复的字符串存储成一个预定义的集合,而且 MySQL 在存储枚举时非常紧凑,会根据列的数量压缩到一个或两个字节。比如下面的例子:
CREATE TABLE enum_test(
e ENUM('fish', 'apple', 'dog') NOT NULL
);
INSERT INTO enum_test(e) VALUES('fish'), ('dog'), ('apple');
SELECT e+0 FROM enum_test;
# result
+-----+
| e+0 |
+-----+
| 1 |
| 2 |
| 3 |
+-----+
可以看到使用枚举类型后,上面三行数据实际上存储为了整数,而不是字符串,而且还有一个让人吃惊的地方:枚举字段是按照内部存储的整数而不是定义的字符串进行排序的,这一点需要特别注意,不然在写程序时容易中犯错。当然你也可以在查询时使用FIELD()函数显式地指定排序顺序。
可以看到上面
范式和反范式
关系型数据库有设计范式的概念,这一点在大学的数据库课程中肯定都会提及。因为有比较高的范式,那么就只有很少或者没有重复的数据,因此在 UPDATE 时只需要修改更少的数据;高范式的表通常也更小,因此占用的内存也会更小,操作起来也会更快......
但是高范式也带来了另一个缺点,比较好的范式通常意味着需要关联,稍微复杂一点的查询就需要使用 JOIN,关联的代价是昂贵的,甚至让一些索引策略失效;而如果不需要关联,即使某个查询需要全表扫描,当数据比内存大时可能会比关联查询快的多。所以一般都会根据实际情况将范式与反范式混用,完全的范式化和完全的反范式化都是实验室才有的东西。
缓存表和汇总表
这里的「缓存表」和「汇总表」并没有什么标准的含义。我们用「缓存表」来存储那些可以从其他表获取,但是获取的速度很慢的数据;而「汇总表」则用来保存那些使用 GROUP BY 语句聚合数据的表。毫无疑问,我们存这些冗余数据也是为了性能。
比如近两年各种应用流行的年终报告,每次网易云音乐的年终报告都会把朋友圈撑满,其它类似于缓存一个用户的朋友数、一个文件的下载次数等等。这些数据实时计算的开销是很大的,而且多数情况下用户也等不起实时计算的时间,一般的解决方案都是通过增加计数器表(缓存表)来解决这个问题。
计算机科学中总是伴随着双面性,上面的计数器表带来性能提升的同时也带来了并发问题。网站的每一次点击都会导致对计数器的更新,对于任何想要更新这一行的事务来说,这条记录都有一个全局的互斥锁,这会使得这些事务只能串行的进行。每一次点击都会触发下面的语句,但大量的点击伴随着该行数据的互斥锁,想想性能也不会提升到哪里去吧。
UPDATE hit_counter SET cnt = cnt + 1;
大多数应用都是读查询居多,为了提升读查询的速度,经常会需要增加一些额外的索引,增加冗余列、汇总表、缓存表等等。但是不要忘了这些技巧也会增加写查询的负担,还会增加开发难度,因此应该根据实际应用场景来做权衡。
加快 ALTER TABLE 表的速度
MySQL 执行大部分修改表结构的方法都是用新的结构创建一个空表,然后从旧表中查出所有数据插入到新表,然后删除旧表。在内存不足、表很大、索引多的情况下会花费很长的时间。一个很严重的缺点是大部分 ALTER TABLE 操作将导致 MySQL 服务中断。
对于常见的场景我们有两种技巧避免服务中断。一种是先在一台不提供服务的机器上执行 ALTER TABLE 操作,然后和提供服务的主库进行切换;另一种技巧是「影子拷贝」,即用要求的表结构创建一张和源表无关的新表,然后通过重命名和删除表的操作交换两张表。
Read More ~
转载——我的喜欢从误会开始|最后的记忆
我的喜欢从误会开始
作者:伍什弦
我说过
我不擅长和男生做朋友
所以
一点点的小事
都能让我误会
误以为你喜欢我
课堂上
向我借笔
下课后
加我 QQ
那时候 QQ 封面出现点赞
整个假期
我们不停的互赞
空间里互相留言
这些小事偷偷在我脑中生根
而我被你深深的吸引
想多见你
想靠近你
在运动会上看到你胜利冲过终点
这一晚我梦里是你
连着四晚我梦里都是你
我知道
我喜欢你是从这个时候开始
可是喜欢的种子早在课堂上埋下
我误会了
误以为
你也是喜欢我
最后的记忆
作者:伍什弦
我想啊
人这一生
大抵都有疯狂的喜欢过一人
除此一人之外
剩下的喜欢相比不过十之一二
读大学前
以为从小学喜欢到高中的那个人
当算作我的初恋
可是他闯入我的心怀
从此苍山洱海不过一人
那时节
他总能出现在我的梦里
我呢
总想把最好的都给他
为他做这样那样的事情
可是他对这样的我说
我们永远都是好哥们
就这一句
之后近一个月
我几乎不说一句话
从不逃课的我逃了不止一节
整个学期
我几乎是在图书馆生活的
读完了
一部十三本的德川家康
看了
不知多少部电影
那种伤心仍是挥之不去
不过是随着时间淡淡忘却罢了
后来
身边也有喜欢我的人
开始我也觉得这人还好
总是一段时间过后
就没缘由的厌恶
在还没来得及向我任何表示前
就已经疏远了他们
毕业的时候
我对他说:祝你幸福
之后班级一起去 K 歌
我走前
最后唱了一首
每每听到都忍不住要流泪的歌
Someone Like You
回去的路上
好友告诉我
我在唱的时候
他是闭着眼睛听的
是他第一个鼓掌的
听到这句话的我
眼泪不受控制般流下
我
站在天桥上大声呼喊
我再也不喜欢你了
可真的是这样吗
无论如何
青春
已离我远去
那感觉如此清晰
以后再不会如此喜欢一人
纵有
江山万里织锦绣
我心
除却巫山不是云
Read More ~
一个通过建网站赚钱的暴利项目(灰产勿碰)
这个项目的前提是你已经有了一个可以发布文章的网站,网站的主要就是收集投诉相关内容,如果你还不知道怎么去建一个网站,可以看我之前发的如何搭建一个属于自己的博客/企业网站,按照文中的方法建一个网站的成本投入不到 150 元。
网站建起来了怎么去赚钱呢?相信大家都会想通过 SEO 把自己网站排名优化到足够高,然后利用谷歌联盟或是百度联盟赚广告费,没事的时候更新更新文章,只要保持一个比较好的更新频率,并且能长期坚持下来,那肯定是可以赚钱的,而且收入也会逐渐递增甚至可能呈现指数型增长。
此时得承认我有点标题党了,这个快速赚钱的套路属于灰产,因为我作为证人协助警察叔叔抓获了一个做这件事情的站长。下面进入正题。
现在有一些专门做维权的平台,比如聚投诉、新浪旗下的黑猫投诉等,可以进去看看这样的平台可能在维权方面起不到多大的作用,但是它随随便便就能上百度的首页啊。谁最害怕网络上的负面信息?肯定是被投诉公司啊!在信息时代,一条负面信息不知道要损失多少客户。
我说的就是做一个类似的网站,首先网民都喜欢看这一类的内容,另外这样的网站也很容易进来访问量,有了访问量那么广告费就是一笔不菲的收入,比如你可以去搜「笑捧博客」看下里面的内容,我截了个图放在这里,先告诉你的是它最大的收入并不是广告费。
鉴于上面的信息都是网络上公开的内容,这里我就不打码了。可以看到这个网站里面的绝大部分内容都是 XXXXXXX公司-警惕,里面就是简单描述一下事情经过,然后放个合同的照片、再放几张聊天截图,而且这些内容都是受骗用户自己投稿的,完全不用花时间自己去创造内容。
假设某客户早这个平台上面投诉了 A 公司,A 公司的人看到在百度轻易就能搜到不利于自己公司的信息,想要快速删除这样的内容怎么办?顶部特地留了个「联系站长」看见了吗?假设现在你就是这个站长,你可以像下面那样给对方回话:
平台的内容都是用户自己发的,我这边会跟进用户投诉的进度,你这边有和客户协商处理的聊天记录吗?或者有给客户的退款记录也行,我去核实如果无误就把这篇帖子屏蔽掉。
都把客户逼到去网上发负面信息了,逼到客户去投诉公司了,基本上这样的公司不会有和客户协商处理的聊天记录,不到万不得已他们是不会给客户退款的,一般对方都会回答没有,此时你可以这样说:
你需要马上处理这个帖子可以先交 600 元的押金,我这边先去后台设置不展示这篇内容,你那边抓紧时间去处理,处理好了联系我退换押金即可。
到这里就玩概率了,如果公司很快的就把这个事情处理了,那么对方找你这个站长退还押金也不能不给是不是?但就是有很多公司在一个月内都没有把这样的客户处理好,因为他们本身做的就是割韭菜项目,怎么会轻易退客户钱呢?过了一个月后可以这样说:
当时给你说的是一个月内处理,与客户沟通处理的聊天截图、退款记录发给我,这边去删除帖子!时间有点久,而且后台设置的一个月就会清理一次数据,进程什么的都已经死了............
简单说就是各种扯皮各种赖,几百块钱对方应该也不会太在意,对方顶多骂你两句也拿你没什么办法,是不是轻轻松松的 600 元就到手了!!!
最后再次强调一点,这个被警察叔叔发现了是要来请你的,而且自己搭的网站没有官方授权,都知道投诉电话是 12315,你个人的一个博客网站凭什么能接收这种投诉?再去看看这个「笑捧博客」的服务器在香港,而且这个网站的所有内容最后更新时间是 2020 年 9 月份,知道为什么吗?
因为这个站长已经被公安局请进去了!
Read More ~
大学生可以尝试操作的项目
很多大学生第一次远离爸妈的怀抱都是因为上大学,刚好此时也已经是 18 岁的成年人了,从小耳濡目染的 18 岁成人礼撬动着内心那颗渴望独立的心,通过自己能力赚到钱放在手里那一刻的感觉,人类的文字已经无法描述那一刻的美妙了。
估计也有不少学生都被一些网上兼职网站给坑过(本人也被坑过),满怀期待的在某个兼职网站提交了自己的个人信息,不一会儿对方就打电话过来和你确定一个时间去面试,此时心中的你是不是还在想自己要准备什么啊?从来没有面试经验的自己能通过面试吗?
到了现场才发现所谓的面试不过只是让你交几百块钱给他们,他们给你在网站上面注册一个账号,这样你就可以去网站上面领取兼职工作了,虽然交了几百块钱有割心头肉的痛感,但是想想多做几天兼职这些钱就挣回来了,而且还能挣更多的钱,心中又充满了期望。
本文本着童叟无欺的价值观,良心分享几个线下必赚项目。
收集毕业生的被子
学校每年都会有大批的毕业生走出校园,本科、硕士(博士一般都在外面有房子)加起来少则几千多则几万,这些学生基本都从外地到学校就读的,每一年这些学生一走都会留下大量的被子等在宿舍,还给给后勤集团留下一大堆的烦恼,那为啥不帮助后勤集团去解决这个烦恼顺道再赚点钱呢?
先辛苦一下去外面的酒店了解他们是不是需要这些被子(不要把酒店的服务想象的那么好,我好像又透露了点什么),别去那种太高端的酒店就行,多问几家比一比价格,别忘了顺道也问下路过的棉花厂。做好记录,毕竟好记性不如烂笔头嘛!
评估一下在自己学校的可行性,价格比较完了觉得可以做那就开始拉上自己的哥们干!为了省点钱可以先找后勤集团领导问问,现在可以为他解决毕业生离校后宿舍被子的问题,可否把这个项目作为勤工俭学工作给点钱,就算不给钱可以不可以给出个车费把被子拉到指定地点。当然如果人家不愿意那就自己出点车费钱啰。
后面要做的事情就不用我多说了吧!去每个宿舍询问一下,把被子抱走就行,毕业生是陆陆续续走的,所以每个宿舍楼记得多跑一两遍。过程是比较累的,坚持下来赚到一笔可供挥霍的基金绝对没问题。
给宿舍提供零食
想象一下自己打游戏打到大半夜饿肚子的感觉,此时楼下的小卖部已经关门了,去校外的超市又太冷、太远了,这一点在北方尤其常见。在南方生活的我有一次肚子饿了,跑到学校的腐败街希望能找点吃的,结果基本上的商家都关门了,要知道那还不到 12 点。
可能也有同学想过甚至实践过这个项目,我自己同班同学也拉着自己的哥们实践过,但是他们并没有做到多好,并没有赚到多少钱,所以下面说几个值得注意的地方!
选品很重要,先选比较容易出手的薯片、肥宅快乐水、辣条等,水果可以留着下一步做,因为保质期不够长!给同学送货的时候一定不要见到是熟人就瞎唠嗑,那样会浪费给其它顾客送货的时间。能加微信记得把顾客和他室友的微信加上,这样方便收集大家的需求和意见,微信和 Excel 能解决 90% 以上的问题。比较重要的一点是记得不定时做做活动,比如从已下单客户种抽取第二日免单优惠,满 30 元送一瓶可乐等等,要让顾客真正体验到在你这里购买的便捷与实惠。
有了上面的基础之后你就可以去和货源老板压价了,当你的流量足够大的时候甚至可以和老板谈判先卖出去在付货款,只有把自己的成本压到足够低才有利润可图,这个项目主要看的是执行力!
给新生办电话卡
这个相信很多同学都多少听过或者尝试过,每年三大运营商的抢人大战尤其激烈,我入学的时候中国移动直接疯狂到给学生免费送卡(那时候实名制还没那么严),在暑假快放假的时候去学校的各个营业厅了解一下情况,问问他们办一张卡都有多少提成之类的(我当时是一张卡 15 元),如果能同时拿到是那个运营商的卡最好,如果拿不到那就拿中国移动的卡(这个也有例外,比如我学校的楼就很神奇,基本每一栋楼里面都接收不到移动信号,图书馆能屏蔽一切信号,因地制宜也很重要)。
去哪里拉客户呢?新生报到处对不对?错了!你的同行都会想到新生报到处,竞争比较大。新生报到处都是办理各种手续对不对?那里也没有桌子什么的方便填写资料,而且新生报到处是第一站,后续的流程还没走完人家也没那耐心给你这里耗,所以新生报到处绝对不是最佳地点。
哪里是最佳的地点呢?宿舍。新生宿舍总共就那么三四栋楼,会呆在宿舍的新生基本都是把各种手续已经跑完了,爸妈正陪着他铺床或是简单歇歇就去吃饭呢,正处于一个放松休闲的状态。这时你去给他说你这里有学生优惠的卡,对方是不是该很高兴?只要他们还没有办卡,那他们吃完饭也会去办电话卡的。
组织租车
这个项目得根据学校的实际情况了,有些学校所处的位置就很适合这样的项目。比如中北大学,在一个离市区很远的村子里面,周末大家都想去市里玩,我去那里看女朋友的时候可遭罪了,虽然有公交但是超级挤啊,所以很多学生宁愿多花几块甚至十多块去坐黑车。何况有的学校还没有公交。
那些司机师傅也很焦灼,一面是已经坐上车的顾客在死命的催他,一面是车上还没有坐满跑一趟划不来,旁边还有很多同行在和他竞争,这样的场面即使你没有在学校见过相信也在车站见过吧!所以这个项目就是在司机与同学之间搭起一座桥梁。
还是上面的话,微信和 Excel 可以解决 90% 以上的问题,你一遍把班次定好让大家交钱预约,一边和司机师傅联系,保证发车的准时性。这个项目在特定环境是刚需,所以很容易在同学之间传开,再稍加一点活动优惠基本就躺赚了,我看到有利用这个项目赚了好几十万的!
Read More ~
为什么会出现网店代运营服务?
本文写于 2020 年 4 月,较于 4 月版本本文已做部分修改
最近在深圳待的厌烦了,网店代运营这个行业兴起来没有多久,逮着清明假期索性到成都几个做淘宝和拼多多代运营的公司走了走,主要是想实地感受一下电商代运营是个什么玩意!截止此文章发布时间,我已经在这个公司待了一周了,但限于理解能力有限,对网店代运营这个东西还是一头雾水,下面就先说说我理解的为什么会出现代运营这样一个行业吧。
一般经过某种生产过程我们可以得到一个或多个产品,然后再把把这些产品拿到集市上去销售,比如农民伯伯种菜拿到菜市场去买。工业的发展、社会的进步等因素使得生产力有显著的提高,但是要生产一个产品依旧离不开生产过程,只是这个生产过程效率变得更高了而已。商品不一定是实体的,比如电视剧里面用钱换取情报,这里的情报也是一种商品,网店代运营公司提供的网店代运营服务也是一种商品,这一点可以类比各种保险。
以前都是租一个门面把商品摆在店铺里,等着附近赶集市的人前来购买。这种模式的弊端在于,一个人一天能走的距离是有限的,会走到你店铺的人更是少之又少,如此一来店铺的客流量依赖于一个村(镇、市),而一个村(镇、市)再大也不过那么点人,销售量的前提是客流量。淘宝、京东、拼多多、苏宁易购等大型电商平台的兴起,就是致力于解决这一类「做生意难」的问题,通过这些电商平台把互联网大流量的优势发挥出来了,互联网提供了巨大的流量池,怎么利用这个流量池就是靠自己的能力了。
问题在于很多人不会操作这一类电商平台的后台系统,初学者可能连一个后台怎么操作发货都不会,更别说如何利用增长思维来玩流量。少部分年轻人能自主学会如何操作电商平台的后台系统,大部分中年人士对复杂的后台就望而却步了。而就算你能操作复杂的后台系统,但是如何优化商品信息(标题、关键词、展示图等)来提高销量可能就不一定会了。
其它诸如站外推广、美工做图、活动上报、刷销量、刷收藏等等一系列操作更不是随随便便找个人就能做的。网店代运营公司提供的这种代运营服务则是为了解决电商运营难的问题,网店代运营公司专注于提供网店代运营服务,而客户则专注于出单发货,这也符合随着社会发展工作会逐渐细分的规律。
说实话,从几天观察来看,我走过的工资在网店运营领域的实力是非常不值得信赖的,虽然这个行业也不乏佼佼者,但是我看到的大部分都是没有真正创造价值,只是不断的去坑客户。我个人倾向于把专业的事情交给专业的团队去做,第一是能大大节省自己的时间、人力成本,另外也不会被运营这些事情扰乱到自己的好心情,但是要真正寻找到一个靠谱的代运营公司可真是难上加难。
我拜访的几个公司都有一个通病,那就是前期过于注重销售导致后续服务没有跟上来,或者说的更直白一点就是他们根本就没想过如何去提升自己的服务质量,客户进来洗一遍之后就不管了,这个过程叫做洗小白。也有一个公司老板已经意识到这一块的问题了,但是公司自身实力和公司人员素质都跟不上。
每个行业的兴起都不是没有原因的,代运营服务的出现的原因是为了解决了「网店运营难」的问题。虽然市场上绝大部分代运营公司都是在割韭菜,但是我相信网店代运营行业会越来越正规化,当然也可以代运营被这绝大多数人给作死。专业的人做专业的事,是社会发展的必然结果。
行业目前是很乱的,同行之间相互伪造聊天记录截图、伪造转账记录、伪造合同等手段去各平台发布诋毁对方的言论,甚至伪装成新客户去盗取别家公司内部的一些信息。让人觉得搞笑的是,还有直接冒充大一点的公司去骗客户的,我看到公司管理层因为这些事情搞的极为头大,表现出了秀才遇上兵的无奈。
换个角度看同行恶意竞争这件事,如果一个公司在搜索引擎都搜索不到的话,那只能说明这个公司随时都可能死去,前期承诺了再好的服务也不一定有用,公司死了怎么能提供服务呢?如果一个公司在上面全是负面,或者全是正面的信息都太假了。只不过这个行业的负面新闻太多了!
一个良性的市场竞争环境是行业发展的必要,但是像上述冒充同行公司、伪造事实依据诋毁同行公司的人,把整个市场都搞的乌烟瘴气了。这是非常短视的行为,短期可能会让自己有一定的收入,但是长期来看这是非常不利于行业发展的,这会逐渐让潜在客户甚至签约客户都逐渐对行业失去信心。
后面专门写一篇文章来揭露我看到的网店代运营行业乱象吧!!!!
Read More ~
Git 基本原理及常用命令速查
参考内容:Pro Git book
如果你只是想查看 Git 常用命令可以选择直接到文章底部「Git 常用命令」阅读,文章大部分内容是 Git 进阶知识,均是自己的读书笔记,如果还想在此基础上再上一层楼,那可以直接看 Pro Git book。
Git 历史
版本控制器是一种记录一个或若干文件内容变化,以便将来查阅特定版本的修订情况。也就是说,版本控制器记录了一个可供考证的历史数据,通过该数据可以知道文件是怎么一步一步发展到今天这个样子的。
最初 Linux 项目使用 BitKeeper 来管理和维护代码,但是到了 2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了免费使用 BitKeeper 的权力。那 Linux 开源社区的解决方案就是自己搞一个版本控制器,所以就有了 Git。
简单说就是 Linus 被逼的去开发了这一款叫做 Git 的版本控制器,因为 Linus 本身就是内核专家与文件专家,所以 Git 也就自然而然具备了非凡的存储能力与性能。
安装
关于如何安装 git 可以查看 Pro Git book,安装完成后需要进行一些必要的配置,比如用户信息、文本编辑器、差异分析工具等等,我们可以通过git config --list来查看配置信息。比如我们要配置用户和邮箱,就可以像下面这样输入命令。
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
Git 原理
Git 和大多数版本控制器有一个重要的区别,就是它直接记录快照,而非差异比较,其它大部分系统以文件变更列表的方式存储信息,而 Git 则存储每个文件与初始版本的差异。换句话说,只要你的文件有改动,那么 Git 就会将该文件复制一份,正因为 Git 的这个特性,所以 Git 仓库很容易就变得非常大;为了高效,如果文件没有修改,那么 Git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件。Git 对待数据更像是一个快照流。
Git 有三个区,分别为:仓库、工作目录、暂存区。基本的 Git 流程为:1)在工作目录中修改文件;2)暂存文件,将文件的快照放入暂存区域;3)提交更新,找到暂存区域的文件,将快照永久性存储到 Git 仓库目录。那么相应的 Git 就有三种状态:已提交(committed)、已修改(modified)和已暂存(staged),你的文件可能处于其中之一。
Git 基础
工作目录中的文件不外乎处于两种状态:已跟踪或未跟踪。已跟踪是指那些纳入了版本控制的文件,在上一次快照中有它们的记录;工作目录中除了已跟踪文件以外的所有文件都属于未跟踪文件,们既不存在于上次快照的记录中,也没有放入暂存区。
查看文件状态
如果需要查看哪些文件处于什么状态,可以使用git status命令,这个命令显示的信息十分详细,如果你喜欢简洁一点的信息,那么可以在其后添加一个-s,其报告格式类似于下面这样。
$ git status -s
M README
MM Rakefile
A lib/git.rb
M lib/simplegit.rb
?? LICENSE.txt
??表示新添加的未跟踪文件;修改过的文件前面有M标记,右边的表示还没有放入暂存区,左边的表示已经放入暂存区了。当然你可能不希望每个文件都出现在未跟踪列表中,比如编译过程临时创建的文件、日志文件等等,所以可以通过创建一个名为.gitignore 的文件,列出要忽略的文件模式,它支持标准的glob模式匹配(shell 所使用的简化了的正则表达式),在 gitignore 中有一个十分详细的针对数十种项目及语言的.gitignore文件列表。
git status对于具体修改显示的过于模糊,如果想查看具体修改了什么地方,可以使用git diff命令,比如git diff README.md。需要注意的是git diff本身只显示尚未暂存的改动,而不是自上次提交以来所做的所有改动,如果需要查看已经暂存起来的变化,则要加上--staged或者--cached,比如git diff --cached README.md。
删除文件
当然我们不可避免的需要删除某个文件,如果你仅仅是简单的从工作目录中手工删除文件,那它并没有真正的从 Git 中删除,Git 会将这次删除识别为一次改动。更好的方式是使用git rm命令来完成删除文件的工作,比如git rm README.md就会从已跟踪文件中删除,并且连带从工作目录中删除指定文件。
如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项-f(译注:即 force 的首字母)。 这是一种安全特性,用于防止误删还没有添加到快照的数据,这样的数据不能被 Git 恢复。
另外一种情况是,我们想把文件从 Git 仓库中删除(亦即从暂存区域移除),但仍然希望保留在当前工作目录中。 换句话说,你想让文件保留在磁盘,但是并不想让 Git 继续跟踪。 当你忘记添加 .gitignore 文件,不小心把一个很大的日志文件或一堆 .a 这样的编译生成文件添加到暂存区时,这一做法尤其有用。这时就需要使用--cached选项了,比如git rm --cached README。
查看历史
我们或许因为某种原因需要回顾一下提交历史,这时git log就派上用场了,默认不用任何参数的话,git log会按提交时间列出所有的更新,最近的更新排在最上面,这个命令会列出每个提交的 SHA-1 校验和、作者的名字和电子邮件地址、提交时间以及提交说明。
git log提供的选项很多,更详细的内容可以查看 Git 基础 - 查看提交历史。除了不带选项的命令,我个人更常用的命令还有另外两个,分别为:git log --pretty=oneline它将每个提交放在一行显示,在查看的提交数很大时非常有用;git log --graph或者git log --pretty=oneline --graph用于显示 ASCII 图形表示的分支合并历史。
撤销操作
在任何一个阶段我们都可能有想要撤销的操作,我们只需要掌握几个基本的撤销操作就能够应对日常的工作了。
第一种情况:取消上一次提交。有时候当我们提交完之后才发现漏掉了几个文件没有添加,或者是提交信息写错了,此时可以使用带--amend选项的提交命令尝试重新提交,即git commit --amend。这个命令会将暂存区的文件全部提交,如果自上次提交以来你还没一做任何修改(比如,在上次提交后马上执行了此命令),那么快照将会保持不变,而所修改的只是提交信息。
第二种情况:取消暂存的文件。假设你修改了两个文件并且想要将它们作为两次独立提交,但是却不小心输入了git add *暂存了它们两个,如何取消其中一个暂存呢?其实在运行git status时已经给出提示了。
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
renamed: README.md -> README
modified: CONTRIBUTING.md
所以如果我们想要取消CONTRIBUTING.md的暂存,那么就可以用git reset HEAD CONTRIBUTING.md命令来完成。
第三种情况:撤销对文件的修改。有时候我们可能并不想保留对某个(若干)文件的修改,git status也给出了详细的提示,告诉我们如何将文件还原成上次提交时的样子,即git checkout -- <file>,比如输入命令git checkout -- CONTRIBUTING.md,就会将CONTRIBUTING.md重置到上一次提交时的样子。
需要注意的是git checkout -- <file>是一个比较危险的命令,因为它仅仅是拷贝了另一个文件来覆盖当前文件,所以你对那个文件的所有修改都会消失,而且不可恢复。
远程仓库
前面我们都是在讲本地操作,远程仓库的使用是必不可少的技能。可以使用git remote命令查看每一个远程服务器的简写,对于已经克隆的仓库,它至少会包含一个origin,这是 Git 给克隆仓库服务器取的默认名字,它和其它服务器并没有什么区别,只是很少人会去修改这个默认名字而已。
如果想要给一个远程仓库重新取一个简写名,那么可以运行git remote rename来完成,比如git remote rename pb paul就是将pb重命名为paul。值得注意的是这样同样也会修改你的远程分支名字,那些过去引用pb/master的现在全引用paul/master。
当想要将自己的成果分享给他人时,就需要将其推送到上游,使用git push [remote-name] [branch-name]即可,比如你想要将master分支推送到origin服务器时,就可以运行git push origin master。
除了分享自己的成果,我们也需要获取他人的成果,即从仓库拉取自己没有的信息,比如git fetch origin,需要注意的是git fetch命令会将数据拉取到你的本地仓库,但它并不会自动合并或修改你当前的工作,所以你还需要git merge来合并分支,实际上有一个git pull命令可以帮我们把这两个步骤都做了,你可以简单的将git pull理解为git fetch后面紧接着一个git merge。
分支管理
Git 的分支模型是它的必杀技特性,它处理分支的方式是难以置信的轻量,创建分支几乎是在一瞬间完成,而且在不同分支间的切换也非常的便捷,要理解 Git 的分支,我们必须要再次回顾 Git 是如何保存数据的。
下图是我们的一个工作流,可以看到所谓的分支实际上就是一个可以移动的指针而已,master、v1.0都仅仅是一个指针,而创建分支、切换分支等操作也都只是对指针的操作,因此就不奇怪为什么 Git 这么快了。
那么 Git 又是如何知道当前在哪一个分支上呢?它仅仅是用了一个名为HEAD的特殊指针,你可以将HEAD想象为当前分支的别名,HEAD指向哪个分支,就表示当前处于哪个分支。
分支创建与切换
我们可以使用git branch [branch-name]来创建一个新的分支,比如git branch testing;如果使用不带选项的git branch,那么它会列出当前所有的分支,这里需要注意的是master分支也不是特殊分支,它是运行git init时自动创建的默认分支,因为大家都懒得去改它,所以它就好像变得特殊了一样。
git branch [branch-name]只是创建了一个新分支,并不会切换到这个分支上面去,分支的切换说白了就是移动HEAD指针,我们只需要使用git checkout testing就可以切换到testing分支上去了。
当然我们可以使用git checkout -b [branch-name]来创建一个分支并同时切换到这个分支,把这个命令与git commit -a -m来对比,你就会发现它们的类似之处。
分支的合并与删除
当我们零时在一个新分支上解决了问题后,需要将其合并到master分支,只需要切换到master再运行git merge命令即可,Git 会自动找到这两个分支的共同祖先,然后做一个简单的三方合并。
当然理想情况下是直接合并成功,但是不免会遇到合并冲突的情况,一旦遇到冲突了,Git 会像下面这样来标记冲突内容,你需要做的是选择由=======分割的令部分的其中一个或者自行合并,当<<<<<<<,=======,和>>>>>>>这些行被完全删除了,你需要对每个文件使用git add将其标记为冲突已解决。
<<<<<<< HEAD:index.html
<div id="footer">contact : email.support@github.com</div>
=======
<div id="footer">
please contact us at support@github.com
</div>
>>>>>>> testing:index.html
当合并完分支后,之前的分支一般就不会再要了,这时你可以运行git branch -d [branch-name]来删除指定分支,比如使用git branch -d testing来删除testing分支。
远程分支
远程分支以(remote)/(branch)的形式来命名。如下图所示,如果你克隆一个仓库下来,那么这个仓库除了会有一个本地的分支指针,还会有一个远程分支指针。如果你在本地的master分支做了一些工作,但是你并没有与origin服务器连接,那么你的origin/master指针就不会移动。
在这之前我们已经讲过通过推送分享自己的成果,在运行git push origin master命令时,Git 会自动的将master分支名字展开为refs/heads/master:refs/heads/master,即意味着推送本地的master分支来更新远程仓库上的master分支,所以你也可以运行git push origin master:testing来做类似的事,如果远程仓库没有testing分支,那它会自己创建一个新的testing分支。
我们肯定需要创建一个跟踪远程仓库的其它分支,最简单的就是运行git checkout -b [new-branch] [remote-name]/[branch],该命令会以远端[branch]分支的内容来创建本地的[new-branch]分支,Git 也对该命令做了一个简化,git checkout --track [remote-name]/[branch],该命令就会在本地创建一个[branch]分支用于跟踪远端的[branch]分支。
当然,我们还需要了解一个删除远程分支的命令git push origin --delete [branch],需要注意的是这个命令基本上只是从服务器上移除这个指针。 Git 服务器通常会保留数据一段时间直到垃圾回收运行,所以如果不小心删除掉了,通常是很容易恢复的。
Git 常用命令
挑了一些比较重要 Git 命令,我把个人常用的命令使用代码块标记出来了。
命令
作用
git init
将一个目录转变成一个 Git 仓库
git clone
从远程克隆一个仓库到本地,它是多个命令的组合,
git add
将内容从工作目录添加到暂存区
git commit
将暂存区文件在数据库中创建一个快照,然后将分支指针移到其上
git commit -a -m [msg]
git add和git commit的组合
git status
展示工作区及暂存区域中不同状态的文件
git status -s
比git status展示的内容更加简洁
git diff
对比工作目录文件和暂存区快照之间的差异
git diff --cached
对比已暂存的差异
git reset
根据你传递给动作的参数来执行撤销操作
git rm
从工作区,或者暂存区移除文件
git clean
从工作区中移除不想要的文件的命令
git checkout
切换分支,或者检出内容到工作目录
git branch
列出你所有的分支、创建新分支、删除分支及重命名分支
git checkout -b [branch]
创建新分支并切换到该分支
git log
展示历史记录
git log --pretty=oneline
简洁版历史记录
git merge
合并一个或者多个分支到已检出的分支中
git stash
临时地保存一些还没有提交的工作
git pull
git fetch 和 git merge 命令的组合体
git push
将本地工作内容推送到远程仓库
git push origin local_branch:remote_branch
比git push更加详细的推送
git checkout --track [remote-name]/[branch]
在本地创建一个分支用于跟踪远程同名分支
git remote -v
显示所有远程仓库地址
git remote set-url origin [url]
设置远程仓库地址为url
Read More ~