1、git 操作
1.1 git命令行自动补全
注意: 一般高版本都会内置这一功能
从github上下载bash文件
curl -OLhttps://github.com/git/git/raw/master/contrib/completion/git-completion.bash
将此文件复制到你自己的用户主目录(自定义即可)中,按照下面的示例,还应改名加上点:
cp git-completion.bash ∼/.git-completion.bash
并把
source ~/.git-completion.bash
添加到你的 .bashrc 文件或者开机启动文件中
1.2 查看远程git 仓库地址
git branch -vv
1.3 推送本地提交分两种情况:
如果本地分支与关联的远程分支名字相同则用:
git push origin <本地分支名or远程分支名>
如果不相同则用:
git push origin <本地分支名>:<远程分支名>
1.4 推送本地分支到远程仓库
git push origin <本地分支名>
//远程分支名默认与本地相同git push origin <本地分支名>:<远程分支名>
1.5 删除远程分支
git push orign :<远程分支名>
//还有其他形式
1.6 删除本地分支
git branch -d/-D <本地分支名>
1.7 跟踪远程一个分支
git branch --track <本地新分支名(注意本地还没有这个分支)> origin/<远程分支名>
注意: 它会自动从
origin
抓取(fetch)内容,再把远程的origin/<分支名>
分支合并进(merge)本地 的<分支名>
分支.当要把修改推送(push)到origin时, 它会将你本地的<分支名>
分支中的修改推送到origin的<分支名>
分支里,而无需指定它(origin).
1.8 拉取远程分支并且在本地是新的与本地其他分支不同
即: 在本地建立一个干净的分支,并跟踪远程的分支
git checkout origin/<远程分支名> -b <本地分支名>
注意: 其实1.7能起到同样的效果,但是区别是什么呢?我的猜测1.7是根据git fetch拉取下来的快照在本地复制到新的分支上,而1.8是真正的拉取远程分支来在本地新建—-有待验证!!
1.9 创建一个空白分支
git symbolic-ref HEAD refs/heads/newbranch
rm .git/index
git clean -fdx
<do work>
git add your files
git commit -m 'Initial commit'
1.10 删除本地tag
git tag -d <tag名>
1.11 用push, 删除远程tag
git push origin :refs/tags/<tag名>
2、 SVN
2.1 执行SVN up和svn merge等命令出现在首位置的各字母含义如下:
“ ” 无修改
“A” 新增
“C” 冲突
“D” 删除
“G” 合并
“I” 忽略
“M” 改变
“R” 替换
“U” 表示从服务器收到文件更新了
“X” 未纳入版本控制,但被外部定义所用
“?” 未纳入版本控制
“!” 该项目已遗失 (被非 svn 命令所删除) 或是不完整
“~” 版本控制下的项目与其它类型的项目重名
2.2 丢弃对一个文件的修改:
svn revert <文件名>
2.3 如果你希望恢复一整个目录的文件,可以使用–depth=infinity选项:
svn revert --depth=infinity .
2.4 出现如下错误:
svn: run ‘svn cleanup’ to remove locks (type ‘svn help cleanup’ for details)
则执行: svn cleanup