版本控制

Git复习(一)之简介、安装、集中式和分布式

人盡茶涼 提交于 2019-11-27 10:27:04
简介 Git是 分布式版本控制系统, 使用C语言开发的 , CVS、SVN是 集中式的版本控制系统, 集中式的版本控制系统不但速度慢,而且必须联网才能使用。 Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。怎么分布呢?最 早,肯定只有一台机器有一个原始版本库,此后,别的机器可以“克隆”这个原始版本库,而且每台机器的版本库其实都是一样的,并没有主次之分。 ⚠️安装所有的版本控制系统,其实只能跟踪 文本文件 的改动,比如TXT文件,网页,所有的程序代码等等,Git也不例外。版本控制系统可以告诉你每次的改动,比如在第5行加了一个单词“Linux”,在第8行删了一个单词“Windows”。而图 片、视频这些 二进制文件 ,虽然也能由版本控制系统管理,但 没法跟踪文件的变化 ,只能把二进制文件每次改动串起来,也就是只知道图片从100KB改成了120KB,但到底改了啥,版本控制系统不知道,也没法知道。 Git可以在Linux、Unix、Mac和Windows这几大平台上正常运行。 Mac OS X上安装Git 方法一:通过homebrew安装 homebrew install git 方法二:通过Xcode安装,Xcode集成了Git,不过默认没有安装,你需要运行Xcode,选择菜单“Xcode”->“Preferences”,在弹出窗口中找到“Downloads”,选择

svn 新手使用指南

你离开我真会死。 提交于 2019-11-27 09:55:18
本文章参考:https://www.jianshu.com/p/aab539536572,但修改了安装说明,和中间的操作的说明。 目录如下: 安装说明 使用说明 检出项目 导入项目 提交 更新 查看日志 版本回滚 版本控制 总结 安装说明 开发人员强烈建议使用IDE中的SVN插件更加智能与人性化(也就是说有些IDE自带svn,有的话就没必要安装了!)。 首先安装SVN客户端(包括中文补丁包),我选择的是华军软件园,这是一个很良心的网站不仅有资源还会教你怎么下载以及简单使用: 地址:http://www.onlinedown.net/ 第二,选择合适的版本,我们现在一般使用的是64位的电脑,所以可以选择第一个 然后按照他的教程往下走就行,安装很简单就不多说了 安装教程到此结束,下面开始介绍SVN的使用。 使用说明 检出项目 假如项目已经在服务器的仓库里,那么现在你要做的就是把它检出到本地。 首先创建一个空文件夹(命名要有含义!)。在空文件夹内右键,选择SVN检出。 现在你看到应该是这个界面,填入版本库地址,选择确定。 此时会弹出一个对话框让你输入账号密码,输入你的账号密码即可。记得勾选保存认证,不然每次操作都会让你输入。 等几分钟就可以检出完毕。 此时在你的目录下就能看到你的项目,现在可以开始愉快的工作了。 但是有可能会遇到权限问题的坑 此时有两个可能:

Hexo的版本控制与持续集成

Deadly 提交于 2019-11-27 08:19:50
想必很多人会把Hexo生成出来的静态网站放到GitHub Pages来进行托管。一般发布Hexo博客的流程是,首先在本地搭建Hexo的环境,编写新文章,然后利用 hexo deploy 来发布到Git。那么对于本地的Hexo的原始文件怎么管理呢?如果换电脑了怎么办?如果没有对原始文件进行备份,突然有一天你的本地环境挂了导致源文件丢失,那不就呵呵了。也许你会想到用Dropbox或者其他方案来对源文件进行备份,但是每次更新完博客,需要备份好源文件,然后执行 hexo deploy 进行发布,是不是很麻烦?换了电脑之后又要重新搭建本地环境,是不是很蛋疼? 那么接下来我们就来说说如何优雅愉快地对我们的Hexo进行版本管理和发布。 既然我们已经用了GitHub来托管我们生成出来的静态网站,那么为什么不也把Hexo博客的源文件也host在GitHub上呢。那么问题来了,如果我们把Hexo博客的源文件托管在GitHub上,我们的发布流程就会变为: 执行git push把更新的源文件push到托管源文件的GitHub Repo (我们称之为Source Repo) 执行hexo deploy来更新托管静态网站的GitHub Pages (我们称之为Content Repo) 这样看来,每次更新博客要经历两个步骤,并不是那么straightforward

Git版本控制系列:使用.gitignore忽略指定文件

不打扰是莪最后的温柔 提交于 2019-11-27 07:19:48
0x00 前言 文章中的文字可能存在语法错误以及标点错误,请谅解; 如果在文章中发现代码错误或其它问题请告知,感谢! 演示运行系统环境:Windows 10 家庭中文版, 64位 Git版本:git version 2.23.0.windows.1 0x01 使用.gitignore意义 我们项目中,并非所有文件都希望被git跟踪并提交,例如: (1)程序编译过程中的中间文件(例如tmp文件); (2)刻意要忽略掉的暂存文件以及保存密码的私密文件。 所以想要git实现我们的上述目的,可以在项目的根目录下创建并配置.gitignore文件,通过在该文件进行配置我们可以完成对指定的文件忽略跟踪。 0x02实例举例 1.建立.gitignore文件 首先我们在项目目录中git初始化( git init )后新建a.txt、b.txt、c.txt以及一个b.doc: 使用 git status 命令查看当前状态: 可以看到四个文件状态都未提交。 然后我们在使用git提交之前,在根目录创建一个.gitignore文件 touch .gitignore 2.编写.gitignore内容 现在可以编写.gitgnore文件,文件 一般语法规范如下: (1)空行或以 # 开头的行仅为注释行不作为忽略规则; (2)使用 / 来分隔文件夹; (3)星号 * 可以匹配任意多个字符(不包括 \ ),问号

Mysql中MVCC的使用及原理详解

房东的猫 提交于 2019-11-27 05:32:29
转载自: https://blog.csdn.net/w2064004678/article/details/83012387 准备 测试环境:Mysql 5.7.20-log 数据库默认隔离级别:RR(Repeatable Read,可重复读),MVCC主要适用于Mysql的RC,RR隔离级别 创建一张存储引擎为testmvcc的表,sql为: CREATE TABLE testmvcc ( id int( 11) DEFAULT NULL, name varchar( 11) DEFAULT NULL ) ENGINE= InnoDB DEFAULT CHARSET=utf8; 什么是MVCC? 英文全称为Multi-Version Concurrency Control,翻译为中文即 多版本并发控制。在小编看来,他无非就是乐观锁的一种实现方式。在Java编程中,如果把乐观锁看成一个接口,MVCC便是这个接口的一个实现类而已。 特点 1.MVCC其实广泛应用于数据库技术,像Oracle,PostgreSQL等也引入了该技术,即适用范围广 2.MVCC并没有简单的使用数据库的行锁,而是使用了行级锁,row_level_lock,而非InnoDB中的innodb_row_lock. 基本原理 MVCC的实现,通过保存数据在某个时间点的快照来实现的。这意味着一个事务无论运行多长时间

清理SVN目录中.SVN

血红的双手。 提交于 2019-11-27 01:50:45
我们项目版本控制使用的SVN,经常会有因为没有清理.svn文件造成的不能更新和提交,今天就在网上找了一一个BAT的代码,测试过了,非常好用 //----------------以下是bat代码----------------------------- @echo On@Rem 删除SVN版本控制目录@PROMPT [Com] @for /r . %%a in (.) do @if exist "%%a\.svn" rd /s /q "%%a\.svn"@Rem for /r . %%a in (.) do @if exist "%%a\.svn" @echo "%%a\.svn" @echo Mission Completed.@pause//--------------分割符里面的代码------------------------------------------ 生成一个BAT文件放到你要清理的文件夹,执行bat就清理文件夹下的.svn文件 //+++++++++++++++++更新 删除SVN/CVS目录的bat脚本 @echo On @Rem 删除SVN版本控制目录 @PROMPT [Com] @for /r . %%a in (.) do @if exist "%%a\.svn" rd /s /q "%%a\.svn" @Rem for /r . %%a in (.)

阿里云基于OSS的云上统一数据保护方案2.0技术解析

不羁岁月 提交于 2019-11-27 01:31:21
近年来,随着越来越多的企业从传统经济向数字经济转型,云已经渐渐成为数据经济IT新常态。核心业务系统上云,云上的业务创新,这些都产生了大量的业务数据,这些数据也成为了企业最重要的资产、资源。 阿里云基于OSS的云上统一数据保护方案2.0,针对业务上云后数据保护所面临的挑战,提供多层次、全方位的数据保护解决方案,让您业务上云,数据无忧。 阿里云基于OSS的云上统一数据保护方案2.0,能够应对数据在使用、存储的过程中遇到的风险,通过其云原生的基础能力,为企业提供了多元化、多维度的数据保护解决方案。 业界领先的分布式存储系统,建立稳健的数据底座 阿里云OSS基于业界领先的分布式存储系统构建强健的底座,在设计时充分考虑了存储介质失效、故障的可能性,采用碎片化分布式离散存储技术存储用户的数据,每一份在云端的数据都会被分块,每个分块文件会存多副本,分布于不同机架上,不同交换机下的服务器上,并引入分钟级别的自动维护机制。当某块硬盘发生异常时,对象存储系统将根据风险均衡策略,自动选择合适的硬盘重建数据,从而有效保证对象存储系统级的数据安全。某个服务器,甚至整个机柜出现故障,数据均不会丢失。 同城冗余存储有效抵御机房级故障,满足关键业务数据的同城高可用的要求 对于关键业务数据的同城高可用的要求,阿里云通过OSS同城冗余存储将冗余数据分布于同城的多个可用区上,其采用的是跨可用区分布式纠删码技术

阿里云基于OSS的云上统一数据保护方案2.0技术解析

若如初见. 提交于 2019-11-27 01:06:33
近年来,随着越来越多的企业从传统经济向数字经济转型,云已经渐渐成为数据经济IT新常态。核心业务系统上云,云上的业务创新,这些都产生了大量的业务数据,这些数据也成为了企业最重要的资产、资源。 阿里云基于OSS的云上统一数据保护方案2.0,针对业务上云后数据保护所面临的挑战,提供多层次、全方位的数据保护解决方案,让您业务上云,数据无忧。 阿里云基于OSS的云上统一数据保护方案2.0,能够应对数据在使用、存储的过程中遇到的风险,通过其云原生的基础能力,为企业提供了多元化、多维度的数据保护解决方案。 业界领先的分布式存储系统,建立稳健的数据底座 阿里云OSS基于业界领先的分布式存储系统构建强健的底座,在设计时充分考虑了存储介质失效、故障的可能性,采用碎片化分布式离散存储技术存储用户的数据,每一份在云端的数据都会被分块,每个分块文件会存多副本,分布于不同机架上,不同交换机下的服务器上,并引入分钟级别的自动维护机制。当某块硬盘发生异常时,对象存储系统将根据风险均衡策略,自动选择合适的硬盘重建数据,从而有效保证对象存储系统级的数据安全。某个服务器,甚至整个机柜出现故障,数据均不会丢失。 同城冗余存储有效抵御机房级故障,满足关键业务数据的同城高可用的要求 对于关键业务数据的同城高可用的要求,阿里云通过OSS同城冗余存储将冗余数据分布于同城的多个可用区上,其采用的是跨可用区分布式纠删码技术

rest-framework 版本控制

僤鯓⒐⒋嵵緔 提交于 2019-11-26 17:27:45
一 作用:      用于版本的控制 二 内置的版本控制类: from rest_framework.versioning import QueryParameterVersioning,AcceptHeaderVersioning,NamespaceVersioning,URLPathVersioning #基于url的get传参方式:QueryParameterVersioning------>如:/users?version=v1 #基于url的正则方式:URLPathVersioning------>/v1/users/ #基于 accept 请求头方式:AcceptHeaderVersioning------>Accept: application/json; version=1.0 #基于主机名方法:HostNameVersioning------>v1.example.com #基于django路由系统的namespace:NamespaceVersioning------>example.com/v1/users/ 三 局部使用 #在CBV类中加入 versioning_class = URLPathVersioning 在settings中配置 REST_FRAMEWORK = { 'DEFAULT_VERSION': 'v1', # 默认版本

.gitignore更新后如何生效

夙愿已清 提交于 2019-11-26 14:27:02
GIT是个十分受欢迎的版本控制器,尤其适合项目当中有新手的情况,因为除了服务器以外, 每个人都有项目的完整历史,这就减少了因为项目管理员疏忽再加上新手的误操作导致灾难的发生。 GIT新手最容易犯的一个错误就是没有添加.gitignore,而把不该上传的东西上传了, 而GIT老手有时会因为在规则里面写了个.*而导致.gitignore没有加入到版本控制当中, 事后才发现,但此时项目中已充斥了“垃圾”。 此时项目管理者才追悔莫及,干净修改.gitignore并提交到版本控制当中。 但大错已铸成,新添的.gitignore不会影响已经加入到项目中的文件,GIT老手此时也可能没有什么好办法, 只能把不该有的东西手动删除掉,再重新提交。但更麻烦的是,这些“垃圾”可能还有用, 如Java项目中依赖的一些*.jar库文件,直接删了会出问题,要在修好项目后重新加回来。 如果只有几个文件还好,如果成百上千,这样操作,一天都不用干别的了。 但问题总会有聪明办法解决。GIT中用 git rm --cached xxx 可以在不动项目当前工作空间的情况下, 将文件从当前(未提交)版本中移除。如此而来简单方法就出来了: git rm -r --cached . git add . git commit -m ".gitignore is now working" 在项目根目录执行简单三行命令