版本控制之重要操作

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 创建一个空白分支

参考: http://gitbook.liuhui998.com/5_1.html

git symbolic-ref HEAD refs/heads/newbranch
rm .git/index
git clean -fdx

git add your files
git commit -m 'Initial commit'

1.10 删除本地tag

git tag -d

1.11 用push, 删除远程tag

git push origin :refs/tags/


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

你可能感兴趣的:(开发工具)