Git 使用笔记

基本配置

git config user.email "my_name@email.com"
git config user.name "my name"

设置SSH

如果已经生成过 ssh key pair,这里不必再次生成,复用即可。

ssh-keygen -t rsa -C "your email"

邮件地址可以不写,默认是本机用户名@本机机器名。最好是填写一些标识自己的记号。

然后一路回车,不要输入任何密码之类,生成 ssh key pair。

如果在 Linux 上,需要把其中的私钥告诉本地系统:

ssh-add ~/.ssh/id_rsa

再把其中公钥的内容复制到GitLab上。具体方法是:

显示ssh公钥的内容:

cat ~/.ssh/id_rsa.pub

在Gitlab网站My Porfile页面右下角,点击“Add Public Key”,粘贴刚才复制的内容到Key的大文本框,提交即可。

注意:在复制内容的时候,文本的两端都不要有空格和换行。

基本命令

假定开发需要的分支为branch_dev

把改动提交到本地版本库

  • git add <file>:添加文件到Git仓库,可反复多次使用,添加多个文件。

    git commit -am “我是提交注释”

  • -m 是加提交注释用;

  • -a 是告诉Git,当前所有的修改,都纳入本次提交。

把改动推送到服务器

在推送之前,需要先执行git pull把别人的改动拉下来合并,等同于 git fetch; git merge origin/branch_dev

然后使用git push推送到服务器。

这是 git push origin branch_dev:branch_dev 的简写。因为要push的是本地当前分支branch_dev,且其upstream分支名是origin/branch_dev,同名,所以可以全省略。

创建服务器端分支

  • git fetch:如果刚同步过,此处就不必再次同步
  • git checkout -b branch_dev origin/master:基于origin/master创建本地分支branch_dev,并检出。是git branch branch_dev origin/mastergit checkout branch_dev 的简写。现在branch_dev的upstream为origin/master。-b参数表示创建并切换
  • git push origin HEAD -u:相当于git push origin branch_dev -u,是git push origin branch_dev:branch_dev -u的简写。-u 的作用是把本地branch_dev的upstream由原先的origin/master改为origin/branch_dev。

把主线上的最新改动合并过来

  • git pull:等同于 git fetch 更新所有的远程分支,然后再 git merge origin/branch_dev
  • git merge origin/master
  • git push:是 git push origin branch_dev:branch_dev 的简写。因为要push的是本地当前分支branch_dev,且其upstream分支名是origin/branch_dev,同名,所以可以全省略。

同步远程参数

  • git remote add <name> <url>:创建了一个与远端仓库的关联关系
  • git config branch.branch_dev.remote <name>:指定当前分支使用的远程仓库
  • git push <name> HEAD -u:相当于 git push <name> branch_dev -u,是 git push <name> branch_dev:branch_dev -u 的简写。-u 的作用是把本地 branch_dev 的 upstream 由原先的 /master 改为 /branch_dev。
  • git push <name>:是 git push <name> branch_dev:branch_dev 的简写。因为要 push 的是本地当前分支 branch_dev,且其 upstream 分支名是 /branch_dev,同名,所以可以全省略。
  • git config branch.branch_dev.remote origin:当前分支使用的远程仓库恢复为默认仓库

常用命令

  • git init:初始化一个Git仓库
  • git status:查看工作区的状态
  • git clone:克隆远程版本库
  • git branch:命令会列出所有分支,当前分支前面会标一个*号。
  • git branch <name>:创建分支
  • git checkout <name>:切换分支
  • git checkout -b <name>:创建+切换分支
  • git merge <name>:合并某分支到当前分支
  • git branch -d <name>:删除分支
  • git log --graph:查看分支合并图
  • git rm:用于删除一个文件
  • git diff:查看修改内容
  • HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset –hard commit_id。
  • git log:查看提交历史。
  • 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

VIM使用笔记

安装

cd /usr/local/src/vim/vim-7.4.942
sudo ./configure --prefix=/usr/local/vim --with-features=huge --enable-pythoninterp --enable-python3interp --enable-luainterp --enable-multibyte --enable-sniff --enable-fontset
sudo make
sudo make install

环境配置

  • 在Ubuntu中使用sudo apt-get install vim安装。
  • ~/.vimrc中加入一行:set number设置行号。
  • vimtutor:sudo apt-get install vimtutor

配置

参考配置

自用配置

" 显示行号  
set number
" 显示标尺
set ruler
" 设置当文件被改动时自动载入
set autoread
" 自动保存  
set autowrite
" 自动缩进  
set autoindent
" 智能缩进  
set smartindent
set cindent 
" 制表符
set noexpandtab
set smarttab
" Tab键的宽度
set tabstop=4
set expandtab
" 统一缩进为4
set softtabstop=4
set shiftwidth=4
" 搜索逐字符高亮
set hlsearch                                                                                                                                     
set incsearch
set smartcase
" 不自动添加空行
set noendofline
               
syntax on   
filetype plugin indent on
runtime macros/matchit.vim
               
" 关闭 vi 兼容模式
set nocompatible
               
" Highlight current line
au WinLeave * set nocursorline nocursorcolumn
au WinEnter * set cursorline cursorcolumn
set cursorline cursorcolumn
               
set showcmd       " display incomplete commands
set laststatus=2  " Always display the status line
set fileencodings=utf-8,gb18030,gbk,big5
               
execute pathogen#infect()
" 不支持箭头的系统可以设置为加号
let g:NERDTreeDirArrowExpandable = '+' 
let g:NERDTreeDirArrowCollapsible = '+' 

let g:neocomplete#enable_at_startup = 1
                        
" 配色 需要放在pathogen#infect()后面
se t_Co=16                    
let g:solarized_termcolors=256
set background=dark           
colorscheme solarized  

插件

中文帮助 vimcdoc

cd /usr/local/src
sudo wget http://nchc.dl.sourceforge.net/sourceforge/vimcdoc/vimcdoc-1.5.0.tar.gz
sudo tar xvf vimcdoc-1.5.0.tar.gz
cd vimcdoc-1.5.0
sudo ./vimcdoc.sh -i 

插件管理 vim-pathogen

GitHub:tpope/vim-pathogen:manage your runtimepath

安装插件~/.vim/autoload/pathogen.vim

mkdir -p ~/.vim/autoload ~/.vim/bundle
curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim

~/.vimrc中添加:

execute pathogen#infect()

安装其他插件的方法:

cd ~/.vim/bundle
git clone git://github.com/tpope/vim-sensible.git

目录树插件 nerdtree

GitHub:scrooloose/nerdtree:A tree explorer plugin for vim

使用pathogen.vim安装:

cd ~/.vim/bundle
git clone https://github.com/scrooloose/nerdtree.git

使用apt-vim安装:

apt-vim install -y https://github.com/scrooloose/nerdtree.git

代码补全插件 neocomplete

GitHub:Shougo/neocomplete.vim:Next generation completion framework after neocomplcache

Debian (or Ubuntu)系统下的依赖:

-vim-nox
-vim-gtk
-vim-gnome
-vim-athena

使用pathogen.vim安装:

cd ~/.vim/bundle
git clone https://github.com/Shougo/neocomplete.vim.git

~/.vimrc中添加:

let g:neocomplete#enable_at_startup = 1

JSX 语法插件

mxw/vim-jsx:React JSX syntax highlighting and indenting for vim.

使用pathogen.vim安装:

The recommended installation method is via Pathogen. Then simply execute

cd ~/.vim/bundle
git clone https://github.com/mxw/vim-jsx.git

(You can install vim-javascript in an analogous manner.)

~/.vimrc中添加:

let g:jsx_ext_required = 0
let g:jsx_pragma_required = 1

ES6语法插件

isRuslan/vim-es6:List of JavaScript ES6 snippets and syntax highlighting for vim. - GitHub

使用pathogen.vim安装:

cd ~/.vim/bundle
git clone https://github.com/isRuslan/vim-es6.git

配色插件

PS:最牛逼的配色,不能推荐更多

GitHub:precision colorscheme for the vim text editor http://ethanschoonover.com/solarized

使用pathogen.vim安装:

cd ~/.vim/bundle
git clone git://github.com/altercation/vim-colors-solarized.git

~/.vimrc中添加:

" 配色 需要放在pathogen#infect()后面
se t_Co=16                    
let g:solarized_termcolors=256
set background=dark           
colorscheme solarized  

其他插件

Ubuntu 使用笔记

输入法的安装

除根据教程安装ibus输入法以外,还需要作一些设置:

  • 在系统设置 -> 语言支持设置中,键盘输入方式选择IBus。
  • 在系统设置 -> 文本输入设置中,添加使用的输入源。

生日

如果不是有人提醒

2015-10-24

如果不是有人提醒,

我几乎就忘了。

过去如梦的岁月,

不再回来。

过去的心不可得,

只是画着洗不掉的罪业。

如果不是有人提醒,

我几乎就忘了。

现在的时光易逝,

悄悄流去。

现在的心不可得,

只是舍受忧喜和苦乐。

如果不是有人提醒,

我几乎就忘了。

未来的一切,

如泡影不可捉摸。

未来的心不可得,

愿在净土中禅定解脱。

‌‌

《股票大作手操盘术》笔记

股票大作手操盘术,融合时间和价格的利弗莫尔准则,【美】杰西-利弗莫尔(Jesse Livermore)著,丁圣元译

利弗莫尔操盘规则

记录规则

  • 上升趋势使用黑色,下降趋势使用红色,自然回升、自然回撤、次级回升、次级回撤使用铅笔。
  • 自然回升或上升趋势记录市场连续上涨的过程,只要市场持续创新高,就继续记录新高价格。
  • 自然回撤或下降趋势记录市场连续下跌的过程,只要市场持续创新低,就继续记录新低价格。
  • 在行情进入调整阶段后,对行情常规的预期是原趋势恢复。

上升趋势的记录

  • 在上升趋势的记录中,下跌过最高价的6%时,记为自然回撤。同时在上升趋势的最高价格下标注两条红线(6点转向)【关键点】。
  • 在调整阶段的自然回撤记录中,回升过最低价的6%时,记为自然回升或上升趋势。同时在自然回撤的最低价格下标注两条红线(6点转向)【关键点】。
  • 在调整阶段的自然回撤记录中,最新价格跌破调整阶段的前期低点(红线标注)3%,则逆转为下降趋势(3点突破)。
  • 在调整阶段的自然回升记录中,最新价格向上突破上升趋势的前期高点(红线标注)3%,可确认上升趋势恢复(3点突破)。
  • 在调整阶段的自然回升记录中,下跌过最高价的6%,但并没有跌破自然回撤的最后纪录,记为次级回撤。此后始终记为次级回撤,直到最新价格跌破了自然回撤的最后纪录,改记为自然回撤(向下跌破不超过3%,否则属于主要趋势逆转)。
  • 在上升趋势调整阶段,先是回升行情未能挑战前期高点,再下挫3%以上,则可能构成了上升趋势即将逆转的警告信号【卖出点】。

下降趋势的记录

  • 在下降趋势的记录中,回升过最低价的6%时,记为自然回升。同时在下降趋势的最低价格下标注两条黑线(6点转向)【关键点】。
  • 在调整阶段的自然回升记录中,下跌过最高价的6%时,记为自然回撤或下降趋势。同时在自然回升的最高价格下标注两条黑线(6点转向)【关键点】。
  • 在调整阶段的自然回升记录中,最新价格突破调整阶段的前期高点(黑线标注)3%,则逆转为上升趋势(3点突破)。
  • 在调整阶段的自然回撤记录中,最新价格向下突破下降趋势的前期低点(黑线标注)3%,可确认下降趋势恢复(3点突破)。
  • 在调整阶段的自然回撤记录中,回升过最低价的6%,但并没有突破自然回升的最后纪录,记为次级回升。此后始终记为次级回升,直到最新价格超越了自然回升的最后纪录,改记为自然回升(向上突破不超过3%,否则属于主要趋势逆转)。
  • 在下降趋势调整阶段,先是回落行情未能挑战前期低点,再反弹3%以上,则可能构成了下降趋势即将逆转的警告信号【买入点】。

投机,是一项挑战

意见千错万错,市场永远不错。

除非市场按照你的个人意见变化,否则个人意见一文不值。

真正从投机交易中得来的利润,都来自那些从头开始就一直盈利的头寸。

利润总能自己照顾自己,而亏损永远不会自动了结。

小心守护账户里的资本,决不允许亏损大到足以威胁未来操作的程度。留得青山在,不怕没柴烧。

当一只股票的价格开始下滑时,没人能够说清楚它到底还要跌多深。在一轮普遍的上涨行情中,同样没人能够说清楚一只股票最终顶部在哪儿。

要点之一,绝不要因为某只股票看起来价格过高而卖出它。反过来,绝不要因为某只股票从前一个最高点大幅下滑而买进它。很有可能这一轮大幅下跌是基于很扎实的理由才形成的。以公平的价格来看,也许该股票当前还是处在极端的高位–即使它的当前价位看上去似乎比较低。设法忘却它过去软高的价格区间,根据综合时机和价格二要素的利弗莫尔公式重新审视它吧。

当我在行情记录上看到某只股票的上升趋势正在展开时,会先等股价出现正常的向下回撤,然后,股价一创新高便立即买进。当我卖空的时候,也采取同样的方式。什么道理?我正在选择恰当的时机追随这个趋势。我的行情记录发出信号–前进!

我决不在市场向下回撤时买进做多,也绝不在市场再度向上反扑时卖出做空。

如果你头笔交易已经处于亏损状态,就绝不要继续跟进,否则你就是太执迷不悟了。绝不要企图摊低亏损的头寸。一定要把这个想法深深的刻在你的脑子里。

追随领头羊

在那些重大运动背后,必然存在着一股不可阻挡的驱动力量。了解这一点就完全足够了。如果你对价格运动背后的所有原因都不肯放过,过于琐细、过于好奇,反倒画蛇添足。

不要同时在许多股票上建立头寸。同时照顾几只股票尚能胜任,同时照顾许多股票就不胜负荷了。

当你看清特定股票群体的运动时,不妨就此采取行动。但是,不要纵容自己在其他股票群中以同样方式行事,除非你已经明白无误地看到了后面这个群体已经开始跟进的信号。耐心,等待。迟早,你也会在其他股票群体上得到与第一个股票群体同样的提示信号的。注意火候,不要在市场上铺得太开。

集中注意力研究当日行情最突出的那些股票。如果你不能从领头的活跃股票上赢得利润,也就不能在整个股票市场赢得利润。

到手的钱财

当你处理富余收入时,一定要亲自出马,不能委托他人。

对亏损的头寸切不可低位再次买进,企图摊低平均成本。

当一个投机者有足够好的运气将原来的资本金翻一番后,他应该立即把利润的一半提出来,放在一旁作为储备。这项策略在很多场合对我都大有裨益。

永远别做任何交易,除非你确知这样做在财务上是安全的。

关键点

如果该股票在穿越关键点之后没有按照应有的模式运行,就是一个必须密切注意的危险信号。

百万美元的大错

谨慎选择时机是绝对必要的,操之过急则代价惨重。

总结一下,这次失败基本上有两个方面的原因。

首先,我没有耐心地等待价格行情的心理时刻的到来,没有等到时机成熟后再入市操作。

其次,仅仅因为自己判断失误,就纵容自己动怒,对棉花市场深恶痛绝,这样的情绪和稳健的投机守则是不相适宜的。我的损失完全是由于缺乏耐心造成的,没有耐心地等待恰当的时机来实施预先形成的看法和计划。

犯了错误不要找借口。

“提防内幕消息。。。,一切内幕消息概不例外”

在投机和投资事业里,成功只属于那些为之尽心尽力的人。

即使钱从天上掉下来,也不会有人愣要把它塞进你的口袋。