软件配置管理(六)常用配置软件配置工具指令

软件配置管理工具的主要功能

  • 版本控制
  • 变更管理
  • 配置审核
  • 配置状态统计
  • 问题跟踪
  • 访问控制和安全控制

两种版本控制模型

Lock-Modify-Unlock

“加锁-修改-解锁”模型
对于版本库中的一个文件,同一时间只允许一个用户修改。

  • 锁定可能导致管理问题。一个用户可能过长时间占用文件,导致其他用户无法修改。
  • 锁定可能导致不必要的线性化开发。若两个用户修改同一个文件的不同部分,这种修改是不会造成冲突的,但锁定模型强制他们串行工作。
  • 锁定可能导致错误的安全状态。对文件的循环等待可能造成死锁。

Copy-Modify-Merge

“拷贝-修改-合并模型”
每个用户读取项目版本库建立一个私有工作副本,用户并行工作,修改各自的副本,最终将各用户的副本合并在一起,形成最终的版本。若副本之间有冲突,需要手动选择保留哪份修改。

复制-修改-合并模型感觉是有一点混乱,但在实践中,通常运行的很平稳,用户可以并行的工作,不必等待别人,当工作在同一个文件上时,也很少会有重叠发生,冲突并不频繁,处理冲突的时间远比等待解锁花费的时间少。
最后,一切都要归结到一条重要的因素: 用户交流。当用户交流贫乏,语法和语义的冲突就会增加,没有系统可以强制用户完美的交流,没有系统可以检测语义上的冲突,所以没有任何证据能够承诺锁定系统可以防止冲突,实践中,锁定除了约束了生产力,并没有做什么事。

  • 如果是不可合并的文件,如二进制文件、图片等,此时修订-修改-解锁模型会更好。

Subversion

命令名称功能
svn add将文件、目录或符号链纳入版本控制。(只有带.svn的工程才能使用add)
svn checkout从版本库取出一个工作副本。Checkout 只在第一次链接时操作一次,以后如果进行更新操作,请使用(Update)指令进行相关操作
svn commit将修改从工作副本发送到版本库
svn copy拷贝工作副本或版本库的文件或目录
svn diff显示两个版本或两个路径的区别
svn export导出一个不带.svn文件夹的目录树
svn import将未纳入版本控制的文件或目录树提交到版本库。(仅仅是把文件导入到svn服务器中,而这个文件本身还只是一个普通的文件,与svn版本库没有关系)
svn info显示本地或远程条目的信息
svn list显示版本库中的目录内容
svn lock锁定版本库中的路径,使得其他用户不能向其提交修改
svn log显示提交日志信息
svn merge合并两个版本中的内容
svn mkdir创建纳入版本控制的新目录
svn move移动一个文件或目录
svn resolved删除工作副本中目录或文件的“冲突”状态
svn revert撤销所有本地修改
svn status打印工作副本中文件和目录状态
svn switch更新工作副本至同一个版本库中另一个url
svn unlock解除工作副本或url的锁定
svn update更新本地工作副本

Git

命令名称功能
git config获取并设置储存库或全局变量
git clone下载一个项目和它的整个代码历史
git init在当前目录新建一个git代码库
git status显示有变更的文件
git diff显示暂存区和工作的差异
git add添加当前目录的所有文件到暂存区
git mv改名文件,并放入暂存区
git rm删除工作区文件,并且将这次删除放入暂存区
git commit提交暂存区的指定文件到仓库区
git log显示当前分支的版本历史
git blame追溯一个指定文件的历史修改记录。
git reset重置暂存区的指定文件,与上一次commit保持一致,但工作区不变
git revert新建一个ccmmit,用来撤销指定commit
git checkout在暂存区的本地分支之间切换或新建分支,会覆盖当前工作空间(clone用于获取您没有的存储库,checkout用于在您已有的存储库中的分支之间进行切换。)
git branch列出所有本地分支
git tag列出所有tag
git merge合并指定分支到当前分支
git remote查看已配置的远程仓库
git fetch下载远程仓库的所有变动
git pull取回远程仓库,并与本地分支合并
git push上传本地指定分支到远程仓库
git stash暂时将未提交的变化移除,稍后再移入

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值