版本控制:Svn和Git

一、Svn简介

SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。

1、工作原理

在这里插入图片描述
版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。

集中式版本控制系统最大的毛病就是必须联网才能工作,如果在局域网内还好,带宽够大,速度够快,可如果在互联网上,遇到网速慢的话,可能提交一个10M的文件就需要5分钟,这还不得把人给憋死啊。

2、操作命令

2.1 提交代码
  • 鼠标右键 -> SVN Update - > 确认
2.2 检出代码
  • 鼠标右键要检出的项目 -> checkout -> 设置检出位置 -> 确认
2.3 撤回代码

1,打开show log 日志
2,选择自己提交的版本
3,右键鼠标
4,点击revert change from this version恢复到之前版本。

二、Git简介

git是一个开源的分布式版本控制工具,相比svn拥有本地仓库的概念,

1、工作原理

在这里插入图片描述
在这里插入图片描述
首先,分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。

2、操作命令

命令解释
git config --global user.name “Your Name”你的名字
git config --global user.email “email@exampl.com”你的邮箱
ssh-keygen -t rsa -C “邮箱”生成密钥,在C盘用户下.ssh文件夹中,pub密钥复制粘贴到github中
git init创建本地仓库
git add .提交被修改、新文件到暂存区,不包括被删除文件
git add -A提交所有变化
git add -u提交被修改、被删除文件到暂存区,不包括新文件
git commit -m “描述”提交代码到分支
git remote add origin https://github.com/用户名/项目名.git提交项目到远程服务器
git clone git@github.com:xxxx.git下载项目到本地
git push origin master推送项目到主分支
git log查看历史提交记录
git rest --hard HEAD^版本回退
git checkout – 文件名.后缀撤销修改
git rest HEAD 文件名.后缀add 之后撤回到工作区
git reflog查看历史提交、版本回退
git reset --hard (log号)git reflog 之后,执行此命令可以找回历史版本的代码
git checkout -b 分支名创建并切换分支
git branch查看当前分支
git branch -a查看所有分支

3、远程操作

3.1 没有远程仓库
  1. 创建本地仓库:git init
  2. 添加到暂存区:git add .
  3. 提交到分支:git commit -m "描述“
  4. 推送到远程服务器:git remote add origin https://github.com/项目名/用户名.git
  5. 推送项目到主分支:git push origin master
3.2 有远程仓库

执行3.1 命令 4 ~ 5

4、异常总结与处理

  • 问题:error: failed to push some refs to
    解决方式:git pull --rebase origin master

  • 问题:fatal: remote origin already exists
    解决方式:git remote rm origin

  • 问题:(git pull origin master代码异常)fatal: refusing to merge unrelated histories
    解决方式: git pull origin master --allow-unrelated-histories (强制合并远程和本地的代码,手动解决冲突后,add … commit … push )

  • 问题:git push origin master 每次报错
    解决方式:先 git pull origin master 再 git push 项目

5、如何github和码云一起提交?

  • 进入.git 文件夹下面 config文件
    在这里插入图片描述
  • 码云: git push origin master
  • github: git push second master

持续更新中…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值