版本管理SVN、Git的区别与使用

1. 分布式、集中式版本管理

     我们在整个项目的开发过程中,会把项目分为很多个阶段来完成,每个阶段都会有一个产出,并且在一个阶段中也会有很多阶段性的成果,同时一个项目都是由很多个人来配合完成的。为了多人协作的方便以及各个阶段成果的记录,我们在开发的过程中会使用版本管理软件来实现相关的管理
     我们所熟悉的版本控制器有SVN、Git。其中SVN是集中式版本管理软件,Git为分布式版本管理软件,下面我们来了解一下集中式和分布式管理的区别。

1.1 集中式版本管理

      集中式版本控制系统,版本库都是集中放在一个服务器中,当需要干活的时候需要从服务器中获取最新的版本,然后进行修改,当完成了这次修改之后需要再推送到中央服务器中。
在这里插入图片描述
      集中管理一般用于比较小的项目,且所有的成员都在一个局域网中,这样使用起来也比较方便,局域网中的网速也还好,在上传下载的时候网络不会有什么影响。

1.2 分布式版本管理

      分布式主要区别在于不需要一个中央服务器,每个电脑都是一个完整的版本库,自己开发的可以先在自己的电脑中管理,当阶段性汇合的时候再推送给对方,对方就可以看到相符的修改。
      和集中式相比,分布式比较安全,每个人的电脑都有完整的版本库,某一个人的电脑坏掉不要紧,可以充其他人那里得到一个完整的版本库,而集中式的重要处理器出现了问题,就需要修复,在此过程中,其他所有人就无法正常的上传与下载。
在这里插入图片描述

      同时git还有强大的分支管理,可以从主线中分出一个分支出来进行开发管理,当这个分支所需要的工作完成的时候又可以merge到主线汇合,特别时候一个项目中的多组并行开发。

2. SVN的使用

参考网络上的使用https://www.cnblogs.com/zhoumiao/p/5459552.html

3. git的使用

把一个文件夹变成仓库文件夹:git init
把文件添加到仓库: git add file (全部的文件就用.表示下面也是一样的)
把文件提交到仓库: git commit –m “commont”
文件修改过后的添加提交也是上面两个命令
查看当前文件与上一次提交的文件修改了哪里:git diff
查看另个版本之间修改了什么:git diff commentid1 conmentid2
查看当前工作去状态:git status
查看提交的版本:git log --pretty=oneline
查看版本的文件修改:git show 版本 file
恢复到之前的版本:git reset --hard (HEAD^ HEAD~1.。。) / git reset --hard 1094a跟svn的updata to revision不一样,
①,git如果没有提交commit则reset会把工作区和暂存区的修改还原到reset的版本
②,Svn 如果有修改的,updateto revision则不会抹掉,而是会跟恢复的版本库marge合并
③,Svn如果有修改,update 不会抹掉,而是会跟恢复的版本库marge合并
查看自己进行的修改:git reflog
撤销修改:git checkout – readme.txt 让这个文件回到最近一次git commit或git add时的状态。
把暂存区的修改撤销掉(unstage),重新放回工作区:git reset HEAD (git add 之后的回退)

把工作区中删除的文件从版本库中删除:git rm file

3.1 git工作区、版本库

在这里插入图片描述

工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。

      add到暂存区stage:不会进行版本记录,无法进行恢复
      commit到工作区HEAD:会做版本记录,每次修改都会记录,方便恢复

猜你喜欢

转载自blog.csdn.net/weixin_43369409/article/details/90407586
今日推荐