git rebase
保持合并的分支和时间:
git rebase -p --ignore-date -i $COMMIT_ID
本地构建pip install的开发环境:
开发python package, 为了模拟pip install后的环境, 可以在开发过程中随时测试, 不需要手动构建软链接,使用:
pip install -e $PACKAGE/
会在python package目录下新建一个*.egg-link
文件, 文件内容是包的路径.
重命名Git分支(Rename Git Branch):
本地分支(local branch):
git branch -m <oldname> <newname>
如果要重命名当前分支, 直接:
git branch -m <newname>
远程分支(remote branch):
没有一个直接的方法可以重命名远程分支, 需要先删除远程分支, 然后本地将重命名后的分支推送到远程:
git push origin :<oldname> git push -u origin <newname>
git stash相关
stash时包含untracked files(默认只有stage和index中的files):
git stash [--include-untracked|-u]
stash pop后, 原先index中的files会恢复为staged, 如果要保持index, 则:
git stash [--keep-index|-k]
同时修改 author 和 committer
比如提交后发现author和committer都错了.
如果只是:
git commit --amend --author="username <useremail>"
则只修改 author 信息, 如果要同时修改author和committer信息则:
git -c user.name="New Author Name" -c user.email=email@address.com commit --amend --reset-author
如果修改了 ~/.gitconfig
则可以直接:
git commit --amend --reset-author
统计所有提交的用户及提交次数:
git shortlog -sn
也可以加上相应的email:
git shortlog -sne
查看某次提交的author/committer:
git --no-pager show -s --format='author: %an <%ae> \ committer: %cn <%ce>' <commit_id>
--no-pager
这个参数很赞!
快速将一个cpu打满:
dd if=/dev/zero of=/dev/null
或:
yes > /dev/null
其它可见参考
进制间转换:
# 十六进制 转 十进制 # 注意字母要 **大写** $ echo 'ibase=16; FF' | bc 255 # 十进制 转 十六进制 $ echo 'obase=16; 32' | bc 20 # 十六进制 转 二进制 $ echo 'ibase=16; obase=2; F' | bc 1111 # 使用printf, 十六进制 转 十进制 $ printf "%d\n" 0xff 255
du
human-readable output by size:
du -h | sort -h du --human-readable | sort --human-numeric-sort
参考 ref1
获取外网ip:
之前用的ifconfig.me国内貌似被墙了, 或者特别慢, 不过网上搜到很多其它的同类服务:
dig +short myip.opendns.com @resolver1.opendns.com
或者:
wget http://ipinfo.io/ip -qO -
图片转为favicon.ico:
convert -resize x32 -gravity center -crop 32x32+0+0 favicon.png -transparent white -colors 256 -background transparent favicon.ico
参考: ref1
grep -E
or egrep
:
egrep
等价于 grep -E
, 不过有的系统可能没有内置 egrep
命令, 所以建议用 grep -E
.