SVN 和 GIT 命令对比

参考

https://blog.csdn.net/justry_deng/article/details/82259470 # TortoiseSVN打分支、合并分支、切换分支
https://www.huliujia.com/blog/802a64152bbbe877c95c84ef2fdf3857a056b536/ # 版本控制:Git与Svn的命令对应关系

TortoiseSVN打分支、合并分支、切换分支

git命令 svn命令 备注
git –version svn –version 查看git or svn的版本
git clone $url svn checkout $url或者 svn co $url
git add svn add
git status svn status
git diff svn diff
git diff $file svn diff $file
git pull svn update 或者 svn up
git commit -m $comment svn不支持本地commit,commit直接push到远程仓库
git push svn不支持本地commit,所以也不存在push的概念
git commit -m $comment &&git push svn commit -m $comment或者 svn ci -m $comment git commit + push的效果和svn commit相同。git push之前需要先pull一下,对应的,svn commit之前需要update一下。
git log svn log less
git show $version svn diff -c $version 查看某个commit的变更内容
git diff $version1 $version2 svn diff -r v e r s i o n 1 : version1: version1:version2 查看两次commit的差异
git diff $version1 $version2 $file svn diff -r $version1 $version2 $file 查看两次commit的差异,$file可以是目录或者文件
git clean -df svn st | grep ‘^?’ | awk ‘{print $2}’ | xargs rm -rf 如果svn版本大于等于1.9,还可以使用:svn cleanup . –remove-unversioned
git checkout $file svn revert $file svn没有暂存区的概念,所以svn是从最新的版本库本地镜像里面checkout
git reset –hard HEAD svn revert . -R 完全回退到最近一次commit
git reset $version svn revert . -R &&svn merge -r HEAD:$version . svn merge不会修改commit历史,只是用$version版本的文件覆盖当前文件。这点和git不一样
git reset –hard $version svn revert . -R && svn update -r $version svn update会回退本地镜像的commit历史,远程仓库不受影响,提交前本地镜像的commit历史必须恢复到和远端一致。
git reset –hard $version && git push –force svn revert . -R && svn merge -r HEAD:$version . && svn commit -m $comment svn远程仓库的commit历史是不可修改的,所以只能通过恢复$version的文件内容,并再次提交来实现伪hard reset。
git fetch svn没有本地分支的概念,所以没有和fetch对应的操作
git rm svn rm
git remote -v svn info 查看远程仓库信息
-------- --------- -----------

我们一般习惯性在创建repository仓库后,再在刚才创建的仓库里面再创建trunk、branches、tags这三个文件夹,而不是直接将项目提交到仓库的根目录下(虽然直接将项目分享到仓库的root根目录下也是可以的,但是我们一般不这么做)。主要目的是:为了给项目各个阶段,各个版本归类、分阶段存储、并行开发。
trunk文件夹: 主干,我们一般把项目提交到此文件夹里面,在trunk中开发。
branches文件夹:分支,我们一般把那些需要打分支,但是有可能会修改的项目代码,打分支到此目录。
tags文件夹:分支,我们一般把那些阶段性(如迭代各期)的项目代码,打分支到此目录。

SVN 和 GIT 命令对比_第1张图片

`

你可能感兴趣的:(svn,git)