之前在公司版本管理工具一直用的是Git,习惯于Git命令行操作,最近换了家公司,发现竟然用的是SVN。在Windows系统上,可以用小乌龟这个工具。我一直习惯用Mac办公,Mac上也有图形界面工具,例如SmartSVN,但是是收费软件。Mac有个好处就是自带了SVN客户端,可以在命令行中直接使用。
拉取远程代码到本地
svn checkout svn://localhost/mycode --username=mj --password=123 /Users/admin/Documents/code #svn操作
git clone git@github.com:WhisperLoli/bank.git #git操作,也可以为http地址
新增的文件添加到SVN版本管理
svn add a.txt #svn操作
git add a.txt #git操作
svn修改的文件不需要使用add,修改完可以直接commit,提交修改
svn commit -m "commit message" # svn操作
git add a.txt #a.txt文件发生修改后,需要add到暂存区
git commit -m "commit message" # 提交commit到本地仓库
git push [origin] [master] # 推送本地仓库的commit到远程,origin为远程仓库名称,master为远程分支名称,默认为origin和master
更新服务器端代码到本地
svn update # svn更新本地
git pull # git更新本地
查看当前状态
svn status # svn查看状态
git status # git查看状态
合并分支A的代码到分支B
svn merge svn://localhost/code/A /Users/admin/Documents/code/B #合并远程分支A到本地B分支
svn merge /Users/admin/Documents/code/A svn://localhost/code/B #合并本地分支A到远程B分支
svn commit -m "commit message" #提交到服务器
#git的两种合并分支方式
git checkout B #切换到分支B
git merge A #合并分支A的信息
git checkout A #切换到分支A
git rebase B #将分支A的commit在分支B上重演一遍
git checkout B #切换回分支A
git push #提交到服务器
恢复修改的文件,修改a.txt,想要撤销修改
svn revert a.txt # 恢复修改
# 当a.txt在工作区时
git checkout a.txt
# 当a.txt添加到暂存区后
git reset HEAD a.txt # 从暂存区取消
git checkout a.txt
创建分支
svn copy svn://localhost/code/SVNTest svn://localhost/code/branch/new_branch -m 'aa的分支' #然后拉取到本地
git checkout -b aa #创建分支aa,并切换到aa
git branch aa #先创建分支aa
git checkout aa #切换到分支aa
比较文件做了哪些修改
svn diff a.txt #svn操作
git diff a.txt #git操作
总结了一些基本的操作,使用上面我感觉最大的不同就是git操作是针对每次commit,而svn不同,svn可以切换到任意目录下,只更新小部分的文件,merge也可以只针对某个特定的文件夹merge,而不是对commit做merge