<
版本管理工具之SVN与Git
>
上一篇

Hive分区表导入ElasticSearch
下一篇

MySQL行列转换
SVN对比Git命令行操作

之前在公司版本管理工具一直用的是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

Top
Foot