push -f

不要用root用户,不要用force参数,这都是老生常谈的话题了。 权利越大,责任越大,可是总是有人使用...

git push -f

实话是说,使用force闯祸了... git提交的多了,难免有些错误想要去掉,干净的提交履历确实好看,也更容易表明做了些什么。 一行代码,第一次改错了,push到master分支了,就一行。(就一行,唯一的一行,所以唯一的一次没有另开分支。) 所以我就回退了一个版本,重新修改force提交了,按说也没有多少问题,可是CI(持续集成),拉到了那个错误提交的版本,然后无法拉到其它更新的版本了...

FiX IT

首先我想的是,恢复出那个版本。习惯性的新开分支,锁定到第一次错误提交后的那个版本,然后修改,然后pull request。那个版本出现了,不是孤立的了,可是CI仍然不能拉到更新的版本。。。

reset

重新来,新开分支,reset一堆修改,然后pull request。“改或者不改,CI的版本就在那里,不增不减。”

最后,我大师出马了。。。危难时刻还是有大师好啊...

总结

自我总结,本次Fix失败,主要原因是一直新开分支,采用了错误的方法。丢失了原本该有的胆识,不过话说回来,master分支搞错是会死人的。(虽说git仓库还是容易恢复,不易于被恶意破坏) 解铃还须系铃人,force闯的祸,应该用force去修复,最后感谢大师。

Which fm

身为程序猿,带耳机早已成为习惯,什么歌曲真心无所谓,只是带耳机的同时,和外界相对隔离起来。

Radio/fm

Linux 下有款软件:Guayadeque,自带好多电台,我的是1.2W+,如果不够我再提供个网址shoutcast,如此多的电台,不怕没有我爱听的。

jing.fm

jing 据说是一款小众的电台,据说刚要发展就被抄袭的电台。所以我还是觉得支持下小众。 jing 传说的强项之一就是,自然 话语言搜索,我尝试了下工作编程之类的没有结果,然后试了下codingdebug这两个奇葩分别对应一两首奇葩歌曲,这是耍我么??? jing有个很严重的毛病,至少我是这么认为,经常性自己暂停!

kugou.com

  • kugou.fm 打开内容是奇葩的 douban.fm (此处指 kugou.com --> 电台) 电台就那么99个,同样的电台同样是重复,只有99个电台,总是重复。 你重复,我只好换了。

douban.fm

经常莫名的插播广告,声音广告那种。点击不再播放,会误杀一首歌曲。 我评价:垃圾货一个!整个douban都是。

fm.baidu.com

我是骨粉,从来没觉得百度好过。百度的电台实在不咋地,给你看一个品质设置,故意给你看个低品质。 一副自以为很牛的样子,牛到谷歌搜的都是百度搜索的自页面,牛到打开页面都是百度转码的符合手机的版本。 俺浏览器支持手机,也是俺的错么。百度统计,会在左上角爆出百度的ico。

借用我家大师的话:百度===垃圾中的战斗机 @2014-11-03,用百度音乐盒听几首新歌,然后弹窗了个百度音乐人广告,点击空白不消失,点击ESC也不行,丫的想去地狱么?你当我不会关闭标签页么! @2014-11-03,MD fm也来广告了,能嵌入弹窗推广,你丫还有什么不能,终生不用!!!

另,百度的一键存到百度云没有了,默认都在云音乐,so批量下载没有了,不是会员别想来。。。

总结

戴上耳机,听着Radio,Coding...

bash

my bash

声明

本文不是介绍bash的,当然也不含有bash历史,本文写的很随意,如果你不喜欢这些,请移步。 有高见,欢迎来IRC: /join #zh-cn

PS1

整一个个性的提示符PS1,我的提示符: ^_^:~$

export PS1="[\e[00;37m]\n[\e[0m][\e[00;34m]^_^[\e[0m][\e[01;31m]:[\e[0m][\e[00;36m]\w[\e[0m][\e[01;33m]\$[\e[0m][\e[00;37m] [\e[0m]"

点击上面的提示符 or bashrcgenerator,定制一个属于自己的提示符吧。 使用该提示符,将生成的代码复制粘贴到~/.bashrc文件即可。(其实是export一个常量PS1,所以有必要放在PS1赋值的后边,以便生效。)

唤醒历史命令补全

将下述代码复制粘贴到~/.bashrc文件,然后输入部分命令再使用上下键试试。

bind '"\e[A": history-search-backward'

bind '"\e[B": history-search-forward'

控制命令$?

  • ;: 组合多个命令,按循序执行。
  • &: 使命令开启一个子Shelll并在后台执行。
  • &&: 前面命令成功后,执行后边命令。
  • ||: 前面命令执行失败后,执行后边的命令。

重定向

  • >: 重定向输出。(新建,会覆盖)
  • >>: 重定向追加输出。(追加,会新建)
  • <: 重定向输入,一般从文件读入等。
  • <<: << "str",重定向输入,遇到str自动结束。
  • |: 管道,不解释了。*****五星级。

####

  • 标准输入(stdin):代码为0,0< or 0<<
  • 标准输出(stdout):代码为1,1> or 1>>
  • 错误输出(stderr):代码为2,2> or 2>>
  • eg: COMMAND &>/dev/null & or COMMAND 1>/dev/null 2>&1 & # 重定向输入,并后台运行。

.bashrc at Ubuntu

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
alias ga='git add'
alias gb='git branch'
alias gc='git commit'
alias gd='git diff'
alias gf='git fetch'
alias gl='git log'
alias gs='git status'
alias go='git checkout'
export PS1="\[\e[00;37m\]\n\[\e[0m\]\[\e[00;34m\]^_^\[\e[0m\]\[\e[01;31m\]:\[\e[0m\]\[\e[00;36m\]\w\[\e[0m\]\[\e[01;33m\]\\$\[\e[0m\]\[\e[00;37m\] \[\e[0m\]"
. /usr/share/bash-completion/completions/git # about my git completions
__git_complete ga _git_add
__git_complete gb _git_branch
__git_complete gc _git_commit
__git_complete gd _git_diff
__git_complete gf _git_fetch
__git_complete gl _git_log
__git_complete go _git_checkout

经过一番折腾,激活了git的自动完成,有自动完成的别名才有意义。