SVN

1、SVN和Git的区别

  • SVN是集中式的,也就是会有一个服务器保存所有代码,拉取代码的时候只能从这个服务器上拉取;Git是分布式的,也就是说每个人都保存有所有代码,如果要获取代码,可以从其他人手上获取
  • SVN没有本地分支,所以只能联网才能提交;Git有本地分支,所以不管是否联网都可以提交到本地分支,只是最后push到远程仓库的时候需要联网
  • SVN建议先update再commit,而Git建议先pull,然后再commit and push
  • PS:我之前的公司用的是SVN,结果后来服务器中病毒了,混乱了好一阵子,最后老老实实改用git了

2、SVN的基本操作

  • add(添加):添加文件到SVN版本控制中
  • commit(提交):用于提交本地修改到svn服务器中
  • revert(还原):用于撤销本地未提交的修改
  • update(更新):用于拉取服务器中最新的代码

Git

1、Git的使用

  • Git Bash:Unix与Linux风格的命令行,使用最多
  • Git CMD:Windows风格的命令行
  • Git GUI:图形界面的Git,不建议初学者使用

2、Git的常用命令

  • ls、rm、mv、cd、touch等,基本和linux命令差不多

3、Git工作区域

  • Workspace:工作区,就是你平时存放项目代码的地方
  • Index / Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
  • Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
  • Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换
    在这里插入图片描述

4、工作流程

  • 在工作目录中添加、修改文件;
  • 将需要进行版本管理的文件add放入暂存区域;
  • 将暂存区域的文件commit提交到git仓库;
  • 使用pull获取远程仓库的所有改动,以免冲突;
  • 如果需要提交到远程仓库,则还需要push到远程仓库

5、Git分支、合并、变基

  • 新建分支:从当前分支复制出一份新的分支,在新的分支上进行的操作不会影响其他分支

  • 合并:就是将两条分支合并到一条支线上,如果有冲突,保留哪些内容自行决定,其提交历史如下,会分岔,即保存两条分支的提交历史
    在这里插入图片描述

  • 变基:变基的原理是首先找到这两个分支(即当前分支 experiment、变基操作的目标基底分支 master) 的最近共同祖先 C2,然后对比当前分支相对于该祖先的历次提交,提取相应的修改并存为临时文件, 然后将当前分支指向目标基底 C3, 最后以此将之前另存为临时文件的修改依序应用。提交历史如下,是一条完整的直线而没有其他分支
    在这里插入图片描述

参考

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐