艾莉亚的猫 Time is limited, To be a better man

Git Submodule的使用

这两天在看facebook放在github上的开源项目,C++还挺多的。让我发现了git submodule这个东西,这里拿来说说。

Git子模块功能允许你将一个Git仓库当作另外一个Git仓库的子目录,允许你克隆另外一个仓库到你的项目中并且保持你的提交相对独立。这样既不会造成代码的冗余,也不丢弃公共代码库的维护历史,真的很牛逼

这里拿我的Winterfell工程做测试,来熟悉一下git submodule的操作

为当前工程添加子模块

git submodule add https://github.com/google/snappy git_submodule_test

执行此命令后,当前目录下新增.gitmodules文件和git_submodule_test目录,进入目录可以看到snappy的源码。.gitmodules文件内容如下

Ubuntu14.04安装QQ国际版

最近重装了两台机子的操作系统,一个安装Centos,一个还是Ubuntu,用于平时工作。今天在网上找了个国际QQ的教程,很不错,自己备份一下。

安装依赖库

sudo apt-get install libgtk2.0-0:i386

64位机还需要执行下面命令

sudo apt-get install lib32ncurses5

解压安装wineqqintl

1 先去网上下载一个wine-qqintl.zip

2 解压zip包,进入目录可以看到三个debian包

sudo apt-get install -f

sudo dpkg -i wine-qqintl_0.1.3-2_i386.deb

sudo dpkg -i ttf-wqy-microhei_0.2.0-beta-2_all.deb

sudo dpkg -i fonts-wqy-microhei_0.2.0-beta-2_all.deb

接着你就可以运行QQ了,其中设置了常用功能,比较精简,CPU占用少。

我的.vimrc配置文件

我的vim使用应该是比大多数Linux后端工程师玩得溜的,别问我为什么,我只会这个:-( 如果你工作中接触Linux,那还是要学习一下Vim,不建议大家去安装VIM插件,感觉不是很给力,主要还是学习成本。

这里给出一些tips:

是否要设置自动缩进,见仁见智

ctags配置、状态栏、高亮当前行都挺好

autocmd BufWritePre,BufRead 谨慎使用,特别是修改的代码有版本控制

有些坑还是要说一说的,比如 jk 映射 你可要小心,举个栗子吧(你正要输入的字符类似"asdfghjkl",发现粗大事了)

另外,如果你试着去屏蔽掉方向键,开始可能会很不适应

这里展示下我自己的vim配置,供参考:

我的GIT配置文件

Git有一个工具被称为git config,它允许你获得和设置配置变量,用以控制Git的外观和操作的各个方面,这些变量可以被存储在三个不同的位置:

/etc/gitconfig 文件

~/.gitconfig 文件,这是我的GIT文件配置,如下:

[user]
    email = jiangzheahu@126.com
    name = jiangzhe

[push]
    default = matching

[color]
    ui = true

[core]
    editor = vim

[alias]
    co = checkout
    ci = commit
    st = status
    br = branch -v
    rt = reset --hard
    unstage = reset HEAD^
    uncommit = reset --soft HEAD^
#l = log --pretty=oneline -- abbrev-commit --graph --decorate
    l = log --pretty=format:'%h : %s' --topo-order --graph
    g = grep -n --color -E
    cp = cherry-pick -x
    nb = checkout -b
    amend = commit --amend
    who = shortlog -n -s --no-merges

#'git add -u' handles deleted files, but not new files
#'git add .' handles any current and new files, but not deleted
#'git addall' noe handles all changes
    addall = !sh -c 'git add . && git add -u'

#Handy shortcuts for rebasing
    rc = rebase --continue
    rs = rebase --skiip
    ra = reabse --abort

位于git目录的config文件(也就是 .git/config),这里稍微瞅瞅:

[core]
    repositoryformatversion = 0 
    filemode = true
    bare = false
    logallrefupdates = true
[remote "origin"]
    url = https://github.com/yangtze736/yangtze736.github.io
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master

我的.bashrc配置文件

用户主目录下面的.bashrc文件,用于保存个人的一些个性化设置,如别名、路径等。这里就把我觉得不错的一些tips分享出来。

这是我的.bashrc文件配置,挑重点展示如下

export LANG=zh_CN.utf-8 #中文UTF-8编码
export PATH=$PATH:$DB_HOME/bin:/home/bran/bin #我自己写的shell脚本放这里

mcd() { mkdir -p "$1"; cd "$1";}
cls() { cd "$1"; ls;}

alias c="printf '\033c'" #清空屏幕,比clear好用多了,不信你试试。
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'

#Funny
alias busy="cat /dev/urandom | hexdump -C | grep \"ca fe\""

#Gdb
ulimit -c unlimited #打开核心转储(core dump)
alias gdb='gdb -q' #屏蔽gdb启动时的提示信息

我自己用的系统是Ubuntu 14.04.3 LTS,.bashrc中也有一些自动生成的部分。如果宏命令很多,单独拉出来放到.bash_aliases貌似也是很不错的。

# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
	. ~/.bash_aliases
fi