环境搭建

  • Linux 安装:sudo apt install git-svn (windows 端不用下载,git 程序自带)

其实, 用好 SVN 就掌握两点:

  1. 检出 (update) = check out (co)
  2. 检入 (commit) = check in (ci)
  • git-svn 命令 (添加本地提交和原 git 命令相同):
git svn clone svn://323.2322.23  # 克隆代码 同时可使用用户名 --username=xxxxx
git svn rebase     # 拉取代码
git svn log [-v]   # 日志 [详情]
git add/commit     # 提交
git svn dcommit [-n] # push [检查]

记: 日志克隆 加词、更新提交 特殊、本地提交 相同

附: SVN 原生命令

  • SVN 命令:
svn checkout  # 检查代码 Update, svn co
svn update    # 拉取代码, svn up
svn status    # 查看状态, svn stat, svn st
svn revert FILE_PATH # 放弃修改,取消单个文件
svn revert -R PATH   # 放弃修改,取消某个目录
svn add       # 添加到暂存区
svn commit -m # 推送代码, svn ci
svn log [-v]  # 查看提交记录(详细)
  • 简洁版命令:
svn co        # 检查代码 checkout
svn up        # 更新代码, svn up
svn st        # 查看状态, svn stat, svn st
svn revert FILE_PATH # 放弃修改,取消单个文件
svn revert -R PATH   # 放弃修改,取消某个目录
svn add       # 添加到暂存区
svn ci -m     # 推送
svn log [-v]  # 查看提交记录(详细)
  • 运行 svn status 展示的标记含义:
L      abc.c               # svn已经在.svn目录锁定了abc.c
M      bar.c               # bar.c的内容已经在本地修改过了
M      baz.c               # baz.c属性有修改,但没有内容修改
X      3rd_party           # 这个目录是外部定义的一部分
?      foo.o               # svn并没有管理foo.o
!      some_dir            # svn管理这个,但它可能丢失或者不完整
~      qux                 # 作为file/dir/link进行了版本控制,但类型已经改变
I      .screenrc           # svn不管理这个,配置确定要忽略它
A   +  moved_dir           # 包含历史的添加,历史记录了它的来历
M   +  moved_dir/README    # 包含历史的添加,并有了本地修改
D      stuff/fish.c        # 这个文件预定要删除
A      stuff/loot/bloo.h   # 这个文件预定要添加
C      stuff/loot/lump.c   # 这个文件在更新时发生冲突
R      xyz.c               # 这个文件预定要被替换
S      stuff/squawk        # 这个文件已经跳转到了分支
Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐