GIT学习参考:https://git-scm.com/book/zh/v2

版本控制

版本控制记录了一个或若干文件的历史变化,便于今后查阅,恢复。

三类版本控制系统

  1. 本地版本控制系统 RCS : 本地存储文件变更系统,无法协作及对权限做统一管理
  2. 集中化版本控制系统 CVCS : 变更存储于集中的一台服务器
  3. 分布式版本控制系统 DVCS : 分布式存储版本库镜像, 包含文件历史变更的所有信息

Git的历史

git来自于linux团队, 是linux为了解决之前版本管理工具Bitkeeper收费的问题研发出来的。

设计目标

  • 速度
  • 简单
  • 对非线性开发模式的强力支持(多个并行开发的分支)
  • 完全分布式
  • 适用超大规模项目

linux是开源的, 所以当他们之前使用的版本工具开始收费的适合,他们决定自己研发一个版本控制工具,即Git.

说起开源, 我们需要了解下常见的开源协议,以便我们做技术选型时考虑.例如一般的开源协议都要求使用开源框架的项目也要开源.

Git与SVN(或者说其他版本控制系统)的区别

  1. 直接记录快照,而非差异比较

     了解此项差异的底层实现方式非常重要,有利于我们更准确的理解和学习Git.具体可以参考文章开始的网站资料.(有图有真相)
  2. 近乎所有操作都在本地执行(得益于第一点的底层实现,即分布式存储)

  3. Git使用sha1哈希算法算出的校验和保证完整性

     Git的索引是校验值而不是文件名,如果在传送过程中有信息丢失和损坏,Git就能发现.
  4. Git一般只添加数据 (只要提交便不会丢失数据,可以执行可逆操作)

使用前的配置

  • git config --list 显示所有配置
  • git config --global user.name 'user' 设置用户名
  • git config --global user.email 'user@xxx.com' 设置用户邮箱
  • ssh-keygen -t rsa -C 'user@xxx.com' 生成ssh密钥
  • 多用户配置方法: 在.ssh路径下(C:\Users\xueli.ssh)创建文件config, 添加下面内容
 # Default github user(usergithub@mail.com)
Host github.com
HostName github.com
User git
IdentityFile C:\Users\xueli\.ssh\id_rsa # Default mygitlib user(second@mail.com)
Host mygitlib.com
HostName mygitlib.com
User git
IdentityFile C:\Users\xueli\.ssh\mygitlib

上面是Git起步和背景知识, 下次将学习Git常用命令.

(三)Java工程化--Git起步的更多相关文章

  1. (四)Java工程化--Git基础

    GIT学习参考:https://git-scm.com/book/zh/v2 常见命令 git init 初始化项目 git add *.java 添加文件到git版本控制(.java后缀的全部文件) ...

  2. 20145208 实验三 Java面向对象程序设计

    20145208 实验三 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 实验步 ...

  3. 【转】Git详解之一:Git起步

    原文网址:http://blog.jobbole.com/25775/ 原文:<Pro Git> 起步 本章介绍开始使用 Git 前的相关知识.我们会先了解一些版本控制工具的历史背景,然后 ...

  4. Git详解之一 Git起步

    起步 本章介绍开始使用 Git 前的相关知识.我们会先了解一些版本控制工具的历史背景,然后试着让 Git 在你的系统上跑起来,直到最后配置好,可以正常开始开发工作.读完本章,你就会明白为什么 Git ...

  5. JUnit三分钟教程 ---- 快速起步

    JUnit三分钟教程 ---- 快速起步 摘自http://lavasoft.blog.51cto.com/62575/65625/ JUnit是个好东西,做大点的项目离不开这东西,实际中用的时候也因 ...

  6. Git详解之一:Git起步

    起步 本章介绍开始使用 Git 前的相关知识.我们会先了解一些版本控制工具的历史背景,然后试着让 Git 在你的系统上跑起来,直到最后配置好,可以正常开始开发工作.读完本章,你就会明白为什么 Git ...

  7. Git 学习之git 起步(一)

    起步 本章介绍开始使用 Git 前的相关知识.我们会先了解一些版本控制工具的历史背景,然后试着让 Git 在你的系统上跑起来,直到最后配置好,可以正常开始开发工作.读完本章,你就会明白为什么 Git ...

  8. 第三章:Git使用入门

    本文主要讲git的使用,其实网上这种教程已经很多了,但是还是要说一下,在这里先把基础的东西跟大家讲一下,然后再附上一个彩蛋,将一些别人不会提到的git技术,不要错过 哦! First: Git概念 1 ...

  9. Android系统移植与驱动开发--第三章 Git使用入门及在学习中有感

    第三章 Git使用入门 使用Git的目的是减少各种版本的Linux的压缩大小,提供源代码在Linux上进行编译. 在这一个章节中,其实就是关键步骤的操作,虽然Git与我们学习的android没有很大的 ...

随机推荐

  1. https进行配置以及http跳转到https配置

    https配置: nginx配置 server { listen 443; server_name localhost; ssl on; root html; index index.html ind ...

  2. 烦神的斐波那契&&洛谷-1306-斐波那契公约数

    传送门 洛谷1306传送门 -------------------------------------------------------------------------------------- ...

  3. 聊聊基准测试的MVP方案

    上篇博客介绍了基准测试的一些思路和方法策略,这篇博客,聊聊基准测试的MVP(最小可行性方案)... 思维导图 一.测试策略 策略名称 阈值 运行时间 性能指标 基线 注释 并发测试 CPU75%+Er ...

  4. 使用CompletableFuture优化你的代码执行效率

    这篇文章详细讲解java8中CompletableFuture的特性,方法以及实例. 在java8以前,我们使用java的多线程编程,一般是通过Runnable中的run方法来完成,这种方式,有个很明 ...

  5. iOS开发基础-九宫格坐标(2)之模型

    在iOS开发基础-九宫格(1)中,属性变量 apps 是从plist文件中加载数据的,在 viewDidLoad 方法中的第20行.26行中,直接通过字典的键名来获取相应的信息,使得 ViewCont ...

  6. c++学习之初话 函数指针和函数对象 的因缘

    函数指针可以方便我们调用函数,但采用函数对象,更能体现c++面向对象的程序特性. 函数对象的本质:()运算符的重载.我们通过一段代码来感受函数指针和函数对象的使用: int AddFunc(int a ...

  7. vue-cli的跨域配置(自己总结)

  8. 使用Spring表达式语言进行装备--SpEL

    本文主要想记录最近的两个使用spring框架实现通过配置文件装备Bean,以及使用SpEL装备Bean. 1.使用配置文件装备Bean: 当我们写某些Bean的时候是希望这个Bean当中的属性是可以通 ...

  9. 一、关于EF你不知道的事

    一.EF 1. 只做查询 ,不用做修改时可以用,提高EF查询性能 var list = db.Users.AsNoTracking().First(x=>x.Name).ToList();

  10. CSS代码检查工具stylelint

    前面的话 CSS不能算是严格意义的编程语言,但是在前端体系中却不能小觑. CSS 是以描述为主的样式表,如果描述得混乱.没有规则,对于其他开发者一定是一个定时炸弹,特别是有强迫症的人群.CSS 看似简 ...