
Git我用了五年多,但说实话前三年基本只会add、commit、push、pull。最近两年才慢慢发现一些真正提高效率的功能。
1. git bisect——自动定位bug引入的提交。假设你知道某个功能在三个月前是好的,最近坏了,但中间有200个commit。一个个看commit要命。bisect用二分法帮你自动定位:标记一个good commit和一个bad commit,Git自动切到中间那个让你测试,你说good还是bad,继续二分。通常log搜索10次左右就能定位到。上个月帮同事定位一个CSS样式问题,5分钟找到引入的commit。
2. git reflog——后悔药的终极形态。如果你误操作了git reset --hard,或者把一个分支删了,在reflog里都能找回来。reflog记录了HEAD的所有移动历史,默认保留90天。用git reflog找到那个操作的SHA,然后git reset --hard回去。
3. git stash push -m 描述——临时存储加备注。Stash大家都会用,但很少有人给它加备注。不加备注的stash就是一堆随机数字,两周后完全想不起来存了什么。加上-m参数写上描述,回头git stash list的时候一目了然。
4. git worktree——同时开多个分支。以前切换分支要用stash或者commit当前改动,worktree可以在同一个仓库的不同目录同时checkout不同分支。适合那种A分支跑着测试、B分支改着代码的场景,不用来回切。
5. git log -S 关键词——搜索代码变更历史。想知道某个函数是什么时候加进来的、谁改的最后一次——git log -S直接搜代码内容的历史变更。比在GitHub上翻来翻去快多了。
还木有评论哦,快来抢沙发吧~