zoukankan      html  css  js  c++  java
  • 版本控制软件使用

    版本控制软件使用

    Svn

    • 获取远程文件
      1
      2
      3
      4
      5
      6
      7
      8
      9
      # 这种方式会默认吧项目下载的当前位置,链接最后的文件夹名会作为本地的项目名
      svn checkout [远程地址(svn://或者http://)] --username [用户名]
      # 指定项目下载位置
      svn checkout [远程地址(svn://或者http://)] [本地目录绝对路径] --username [用户名]
      # 明文指定用户密码
      svn checkout [远程地址(svn://或者http://)] --username [用户名] --password [密码]
      示例:
      svn checkout svn://192.169.1.1:8001/abc/py-workspace --username zhangsan
      svn checkout svn://192.169.1.1:8001/abc/py-workspace /Users/atey/PythonProject/def/ --username zhangsan
    • 同步远程更新本地文件

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      # 更新当前位置下,所有的文件到最新版
      svn update
      # 更新指定文件到某个版本
      svn update -r [版本号] [文件名]
      # 更新某个文件到最新版
      svn update [文件名]
      示例:
      svn update
      svn update -r 200 abc.py
      svn update abc.py
    • 编辑忽略文件列表

      1
      2
      3
      4
      5
      # 在项目目录中运行下面的命令,否则就把 . 改成对应的目录位置
      svn propedit svn:ignore .
      # 在弹出的文本编辑器中写入需要忽略的文件名或者文件夹,一行一个
      .idea # 如果要忽略文件夹,最后不要加 / 否则忽略无效
      test.txt # 忽略文件
    • 查看本地文件变更状态

      1
      2
      3
      4
      svn status
      # 标识符说明
      ?:不在svn的控制中(新增文件/文件夹) M:内容被修改 C:发生冲突
      A:预定加入到版本库 K:被锁定
    • 添加文件

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      # 添加单个文件
      svn add [文件名/文件夹]
      # 添加某种文件
      svn add [通配符匹配文件名]
      # 注意 svn 无法直接 add . (跟Git有区别这里)
      ➜ svn add .
      svn: warning: W150002: '/Users/atey/PythonProject/abc' is already under version control
      svn: E200009: Could not add all targets because some targets are already versioned
      svn: E200009: Illegal target for the requested operation
      # 如果需要添加全部未提交可借助shell命令
      svn status | awk '{if ($1 == "?") {print $2} }' | xargs svn add
      # 同样批量删除
      svn status | awk '{if ($1 == "!") {print $2}}' | xargs svn rm
    • 提交更改
      注意: Svn的提交是直接提交到远程服务器,而Git的提交是提交到本地

      1
      2
      3
      4
      5
      6
      # 提交文件,并注明提交说明
      svn commit -m "提交备注信息文本" [文件名]
      # 提交全部文件
      svn commit -m "提交备注信息文本" *
      # 提交更改注释从文件读取
      svn ci -F comment.txt
    • 查看操作记录

      1
      2
      3
      4
      5
      svn log [项目路径/远程路径]
      # 查看最新的前三个版本
      svn log -l 3
      示例:
      svn log svn://192.168.1.1:8001/abc/def
    • 回滚操作

      • 没有提交,本地回滚
        注意: svn revert本身有固有的危险,因为它的目的是放弃未提交的修改.一旦你选择了恢复,没有方法找回未提交的修改.

        1
        2
        3
        4
        # 回滚文件
        svn revert [文件名]
        # 回滚文件夹
        svn revert -R [文件夹名]
      • 已经提交

        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
         1. 保证目前代码为最新代码
        2. 找出要回滚的版本号
        3. 使用 diff 比对两个版本 svn diff -r [版本1]:[版本2] ""
        4. 使用merge 开始回滚 svn merge -r [版本1]:[版本2] ""
        5. 提交操作
        示例:
        svn update
        svn log # 或者 svn log -l 3 找出最新的前三个版本
        svn diff -r r28:r25 "" # 比对版本差异
        svn merge -r r28:r25 "" # 回滚更新
        svn diff "" # 确认回滚结果
        svn commit -m "Revert revision from r28 to r25,because of ..." # 提交操作
    • 常见错误记录

      • 编辑忽略文件列表时
        运行svn propedit svn:ignore .编辑忽略文件列表,批量忽略文件或者文件夹时,出现下面的错误
        1
        2
        3
        4
        5
        svn: E205007: None of the environment variables SVN_EDITOR, VISUAL or EDITOR are set, and no 'editor-cmd' run-time configuration option was found
        # 解决方法,指定对应的文本编辑器
        编辑当前的shell文件,添加环境变量
        vi ~/.bash_profile 或者 vi ~/.zshrc
        export SVN_EDITOR=vim
     
  • 相关阅读:
    第四章
    第三章随手笔记
    Android深度探索(卷1)HAL与驱动开发
    第十章心得体会
    第九章心得体会
    第八章心得体会
    第六章心得体会
    第七章心得体会
    第五章心得体会
    第四章心得体会
  • 原文地址:https://www.cnblogs.com/mouseleo/p/10903193.html
Copyright © 2011-2022 走看看