常用的命令行SVN命令
现在的版本管理工具都有相当人性化的GUI版本,无论是免费的收费的,都做得相当好,点几个按钮,选几个文件,提交,回退,更新,一步就完成了,但是最近在公司的Mac下(低配Mac mini,你懂的…),很多GUI版本的工具都非常慢,卡顿非常严重,而且对SVN的外链(external)支持不好(像CornerStone这个SVN的GUI工具),也就是在版本管理工具的内部的文件视图里,看不到external属性下的文件,只能看到最上级的目录,而实际的目录中却有对应的文件,只是不能在GUI的版本工具中进行操作,这个情况下就只能在对应的外链目录下通过终端进行提交了。一段时间下来,发现一堆命令都忘了,只会在GUI工具上点来点去,一旦遇到上面那种情况,就得傻眼半天,这里记录一下常用的SVN命令行命令。
检出(Check Out)
svn checkout
ex: svn checkout svn://dev.bugcode.net/demo/svn_demo
short: svn co
更新文件
svn update [-r version_code]
svn update # 直接更新当前目录和子目录的所有文件
ex: svn update -r 1028 demo.c # 把当前目录下的demo.c还原到版本号是1028的版本
svn update
# 更新指定文件到最新 short: svn up
向版本库添加文件,支持通配符
svn add
ex: svn add demo.swift / svn add *.cpp
提交文件
svn commit -m “commit-log”
ex: svn commit -m “commit message for svn” ./demo_dir/demo.c
short: svn ci
回退文件(直接解决冲突状态,但不会回退被删除的文件)
svn revert
ex: svn revert ./demo/demo.c
删除文件
svn delete
-m “delete message” ex: svn delete svn://dev.bugcode.net/demo/demo_need_file -m “delete message for svn” # 相当于直接删除版本库里的文件
ex svn delete ./demo/demo_need_file -> svn commit -m “delete message” # 先删除本地副本中的对应文件,再提交
short: svn delete / svn remove / svn rm
查看log
svn log
比较差异
svn diff
svn diff version1:version2
ex: svn diff ./demo.c / svn diff 1028:1000 ./demo.c
short: svn di
显示属于版本库管理的目录和文件,直接创建属于版本库管理的目录
svn list
ex: svn list ./
short: svn ls
svn mkdir
ex svn mkdir test_dir
解决冲突,这里的命令只是用来移除对应文件的冲突状态(删除对应的标记冲突的文件),具体的文件冲突还是需要手动去文件解决
svn resolved
ex: svn resolved ./conflicted_file_name
有用的shell命令
shell命令天天在用,除了ls,cat,pwd,cp,mv类似这些常用的,有些提高效率的命令用起来还是可以缩短不少输入时间的。脑袋不好使这里一起记录一下
zsh下的进入当前目录下的前二级目录,bash没有!
cd …
都知道 ~ 是home目录,但是cd之后什么也不加也是相当于 cd ~
中划线,直接cd -可以进入上次cd进入的目录,比如现在test目录进入test目录下的next目录,这时执行cd -,就会再回到test目录下,再执行cd -就又回到test目录下的next目录下了。
快捷键
- ctrl + a: 回到行首
- ctrl + e: 去到行尾
- ctrl + u / ctrl + y: undo / redo
- ctrl + z: 当前正在运行的程序放到后台执行
$? 获取上一个命令的返回结果,比如
1
2
3
4
5
6
int main(int argc, char **argv)
{
printf("Terminal output test.")
return 0;
}编译后生成的可执行文件运行后,想看一下main函数的返回值,就可以在文件运行后,使用$?来查看return的具体值。
!! 输出上一次命令,并执行
!$ 输出上一次命令的最后一个字符串
快速创建文件,touch file 或者 > file(更短更快)
fgrep “string” 快速查找当前目录包含string这个串的文件并输出,加-r选项可以查所有子目录
end 生活不只有眼前的苟且,还有远方的苟且。