git submodules
当你在一个项目中需要使用其他 repository 时,你可以将其源码复制到本地集成,但是这样后续该代码更新的时候就很难保持更新。一个更好的方法是使用 submodule。方便集成,同时保持一定的独立性,且易于更新。
https://www.jianshu.com/p/9000cd49822c
git remote
使用 git 的时候,经常会使用依照教程使用一些关键词,比如remote, origin, master,久而久之 成为习惯,但是不知道什么意思。
$git remote
origin
"remotes":repositories whose branches you track.
http://gitimmersion.com/lab_39.html
简单概括, orign 是其中一个远程仓库(remotes)的名字,一般默认的约定俗成的远程服务器都会成为 origin,一般指 的就是 github 或者自建 git 服务器的 repo。
git remote add origin https://github.com/aaron0769/test.git
git push -u origin master
第一句指定远程分支 origin 指向什么地址。这里不一定要远程地址,也可以是一个本地的 git 目录。第二句指上传 master 分支到 origin 这个 remote,只要第一次指定即可。
对git初学者来说,容易被不同命令之间操作的对象以及位置搞混,提供一个这样的图供参考。
来源
https://patrickzahnd.ch/uploads/git-transport-v1.png
shellcheck
https://www.shellcheck.net/
finds bugs in your shell scripts.
“shell 脚本猛于虎”,shell 脚本引发过故障已经不用多举例子了,但日常工作中有时用 shell 又能带来非常大的便利,又不得不用。shellcheck 是一个用于检查 shell 脚本中潜在问题和风险的工具,一定程度上避免可能出现的shell脚本的bug。
➜ cat test.sh
my_home=`ls ~/tmp/tmp/`
rm ~/tmp/tmp/$my_home
➜ shellcheck test.sh
In test.sh line 1:
my_home=`ls ~/tmp/tmp/`
^-- SC2148: Tips depend on target shell and yours is unknown. Add a shebang.
^-- SC2006: Use $(..) instead of legacy `..`.
In test.sh line 2:
rm ~/tmp/tmp/$my_home
^-- SC2086: Double quote to prevent globbing and word splitting.
Restful API 对于长时间任务的处理方法
Restful API 已经成为了大部分 HTTP API 的通用标准,用于处理资源的表示比较简单快捷。但 HTTP 本身是无状态的协议,对于需要较长时间执行的任务来说天然不适合处理。因此 Restfulapi 对于这类需要长时间执行的任务会通过异步的方式进行调用。在响应中,返回状态码202(accepted)和一个任务 id,用于请求方后续的查询,也可以包含其他信息例如预估时间等。
https://www.oreilly.com/library/view/restful-web-services/9780596809140/ch01s10.html
apple Shortcuts
有哪些实用有趣的 iOS 12 捷径(Shortcuts)分享? - 知乎
https://www.zhihu.com/question/295095411
iTerm 绑键小改动大方便
iTerm 是每天工作的主要界面,常常在不同的 tab 和 pane 之间切换。有时候也会在同一个窗口中用 vim 分割成不同的窗口,因此又多了一层切换。
我的方案是这样的:
cmd(Mac 下)用来可控制 iTerm 窗口的切换,ctrl 用来控制 vim 或者 shell 里面的窗口切换。然后通过修改 iTerm 默认键,实现快速的跳转,以下是我的绑定设定,你可以参考:
iTerm -> Preference -> Keys -> ‘+’新增绑定:
cmd + h/l 左右跳转不同的 tab
cmd + j/k 跳转同一个 tab 下的不同 pane(面板)
bash 下(默认)的快捷键:
ctrl + a/e 跳转一行的最前或最后
ctrl + f/b 同一行的字符前后移动
ctrl + p/n 上下行跳转
vim 中,我也修改了绑定键实现方便的跳转
"split navigations
nnoremap <C-J> <C-W><C-J>
nnoremap <C-K> <C-W><C-K>
nnoremap <C-L> <C-W><C-L>
nnoremap <C-H> <C-W><C-H>
nnoremap <C-W> <C-W><C-W>