一、Git简史及同类产品对比:
1、git简史:
       同生活中的许多伟大事件一样,Git 诞生于一个极富纷争大举创新的年代。Linux 内核开源项目有着为数众广的参与者。绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。到 2002 年,整个项目组开始启用分布式版本控制系统 BitKeeper 来管理和维护代码。

到 2005 年的时候,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了免费使用 BitKeeper 的权力。这就迫使 Linux 开源社区(特别是 Linux的缔造者 Linus Torvalds )不得不吸取教训,只有开发一套属于自己的版本控制系统才不至于重蹈覆辙。他们对新的系统订了若干目标:

  • 速度
  • 简单的设计
  • 对非线性开发模式的强力支持(允许上千个并行开发的分支)
  • 完全分布式
  • 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)


2、git和SVN对比:
2.1、SVN:SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就郁闷了。

下图就是标准的集中式版本控制工具管理方式:

集中管理方式在一定程度上看到其他开发人员在干什么,而管理员也可以很轻松掌握每个人的开发权限。

但是相较于其优点而言,集中式版本控制工具缺点很明显:

  • 服务器单点故障
  • 容错性差

2.2、Git:Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

下图就是分布式版本控制工具管理方式:


3、Git工作流程:

一般工作流程如下:

1.从远程仓库中克隆 Git 资源作为本地仓库。

2.从本地仓库中checkout代码然后进行代码修改

3.在提交前先将代码提交到暂存区。

4.提交修改。提交到本地仓库。本地仓库中保存修改的各个历史版本。

5.在修改完成后,需要和团队成员共享代码时,可以将代码push到远程仓库。

下图展示了 Git 的工作流程:


二、Git安装教程
1、下载Git安装程序包:

2、安装Git:
安装Git程序包:
右键——>下一步——>安装完成——>右键打开Git Bash Here——>git --version:查看Git版本——>END 


3、安装TortoiseGit
安装TortoiseGit——>右键下一步——>OpenSSH——>END
启动配置——>语言(后期再更改,默认English)——>指定git安装路径——>设置邮箱——>END
右键——>可以看到TortoiseGit的快捷启动图标


4、安装中文语言包:
右键程序包——>下一步——>安装完成——>右键——>TortoiseGit——>settings——>Language:中文(简体)(中国)——>应用——>确定——>END



三、Git配置使用:创建本地版本库,并将项目提交到本地仓库:
1、配置本地版本库:三种方式:
  • 创建文件夹:Repository        repo1
方法一:
  • 右键——>Git GUI Here——>Create New Repository——>指定创建的仓库文件路径E:/GitHub Repository/Repository/repo1——>create——>在repo1下可以看到.git隐藏文件夹(.git就是本地版本库)——>END
方法二:
  • 切到  .git的工作目录下\Repository\repo1——>右键——>Git Bash  Here ——>键入:git init——.git本地版本库创建——>END
方法三:
  • 切到   .git的工作目录下\Repository\repo1——>右键——>git在这里创建版本库(tortoisegit)——>带版本库的仓库不要选中:制作纯版本库——>.git本地版本库创建——>END


2、本地版本库中添加项目:
  • 工作区和暂存区:Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念。
  • 什么是工作区(Working Directory):工作区就是你在电脑里能看到的目录,比如我的reporstory文件夹就是一个工作区。有的同学可能会说repository不是版本库吗怎么是工作区了?其实repository目录是工作区,在这个目录中的“.git”隐藏文件夹才是版本库。这回概念清晰了吧。
  • Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。

如下图所示:

  • 把文件往Git版本库里添加的时候,是分两步执行的:

第一步:是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

第二步:是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

  • 因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。你可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存的所有修改。

3、向本地仓库添加文件:
  • .git:本地版本库
  • repo1:是.git本地版本库的工作目录
  • 工作目录下:向本地版本库添加文件;必须在工作目录下。

3.1、添加文件到本地版本库的stage暂存区中:
  • 在.git本地版本库下创建文件:hello.txt
hello.txt上右键——>TortoiseGit——>添加——>确定(图一)(目前只是把文件添加到暂存区)——>END
                                                        图一

3.2、commit暂存区stage文件到master分支 本地版本库中:
  • 在.git本地版本库工作目录下——>右键——>Git提交(C)->“master”(图一)——>提交、关闭——>文件上会有对号出现(图二)——>暂存区文件添加到本地版本库中——>END
                                                                图一
                                                                图二

3.3、查看本地仓库有什么内容:
  • 右键——>TortoiseGit(T)——>版本库浏览器——>可以查看到刚才添加的文件Hello.txt——>END

3.4、修改文件内容并提交:
  • 修改文件内容——>文件变为!号(说明文件已经修改)——>右键——>Git提交(C)->“master”——>填写日志文件,提交、关闭——>END
3.5、查看文件提交历史记录及更改的内容,比较版本差异:
  • 在Hello.txt文件上右键——>TortoiseGit(T)——>显示日志(图一)——>选中两个文件、右键——>比较版本差异(图二)——>END
                                                                    图一
                                                                   图二

4、删除本地仓库中的文件,误删还原:
方法一:
创建一个文件hello1.txt并添加到本地版本库中:
  • 在git本地版本库工作目录下——>右键删除hello.txt文件——>右键,版本库浏览器——>本地版本库中文件还是存在——>

  • 若是在提交前发现误删除了文件:还原文件——>TortoiseGit(T)——>还原——>删除文件还原OK——>

  • 右键——>Git提交(C)->“master”——>右键,版本库浏览器——>此刻本地仓库文件彻底删除。(此刻再想还原还原不会来了)——>END

方法二:
创建一个文件hello2.txt并添加到本地版本库中:
  • 在hello2.txt文件上:右键——>TortoiseGit(T)——>删除(D)(本地版本库文件还是存在)——>右键——>Git提交(C)->“master”——>本地版本库删除完成——END
方法三:
删除并保留副本:创建一个文件hello3.txt并添加到本地版本库中:
  • 在hello3.txt文件上:右键——>TortoiseGit(T)——>删除并保留本地副本(图一)——>右键——>Git提交(C)->“master”——>本地版本库删除完成:本地电脑文件还是被保留下来——END
                                                                        图一








Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor


NO.A.0002——Git简史及安装教程/创建本地仓库/提交项目到本地仓库/误删还原的更多相关文章

  1. Node.js npm基础安装配置&创建第一个VUE项目

    使用之前,我们先来明白这几个东西是用来干什么的. node.js: 一种javascript的运行环境,能够使得javascript脱离浏览器运行.Node.js的出现,使得前后端使用同一种语言,统一 ...

  2. Windows+Git+TortoiseGit+COPSSH 安装教程及问题收集

    准备工作: 1. git-1.8.1.2-preview20130201.exe 下载地址: https://code.google.com/p/msysgit/downloads/list 2. C ...

  3. #Git 详细中文安装教程

    Step 1 Information 信息 Please read the following important information before continuing 继续之前,请阅读以下重要 ...

  4. git Windows终端安装教程

    1.下载网址:https://gitforwindows.org/ 2.双击压缩包出现: 3.点击下一步后,选择安装路径: 根据自己的需求选择路径 4.选择安装的组件,建议全选 [每一条解析:] Ad ...

  5. git创建分支并提交项目

    git 创建分支, 切换分支, 合并分支, 删除分支及提交[commit提交到本地仓库push名利提交到远程服务器], 检出[pull], 冲突修改, 本地仓库同步远程服务器[pul和push命令l] ...

  6. vue-cli安装以及创建一个简单的项目(一)(Node\npm\webpack简单使用)

    1.关系介绍 1.简单的说 Node.js 就是运行在服务端的 JavaScript. 2.NPM是随同NodeJS一起安装的包管理工具(新版的nodejs已经集成了npm),能解决NodeJS代码部 ...

  7. Git本地已有项目关联远程仓库

    情况: 本地已有项目 远程有个仓库 目的: 本地项目关联远程仓库 首先要把本地项目变成git管理的,也就是建立一个本地仓库,可以在项目目录下面使用git init命令初始化仓库,初始化成功之后会在仓库 ...

  8. 初学者对Git的使用安装教程,以及对unknown key type -rsa的解决办法

    第一次使用Git,诚惶诚恐. Git在每个电脑上第一次使用必须要配置环境,才能通过SSH秘钥的方式安全稳定的拉取代码! 此文适合对Git一无所知的小白观看,大神勿扰.下面我将讲解一个傻瓜式的Git安装 ...

  9. Git for Windows安装教程

    1.国内直接从官网(http://git-scm.com/download/win)下载比较困难,速度极慢,需要翻墙. 这里提供一个国内的下载站,方便网友下载(https://npm.taobao.o ...

随机推荐

  1. JavaScript数字与字母相互转换

    数字 转换为 字母: const num = 'a'.charCodeAt() // num = 97 字母 转换为 数字: var str = String.fromCharCode(97) // ...

  2. postgresql 导出数据库与数据表

    单表导出 pg_dump --host 127.0.0.1 --port 5432 --username "postgres" --role "postgres" ...

  3. 设备屏幕与Size Class对应

  4. 普通人如何站在时代风口学好AI?这是我看过最好的答案

    摘要:当前,数据.算法.算力的发展突破正推动AI应用的逐步落地. AI是什么? 根据维基百科的定义,人工智能是一种新的通用目的技术(GPT, General Purpose Technology),它 ...

  5. java 第二课 标识符

    Java 标识符为字母.数字.下划线.dollar符 变量不能以数字开头 包名小写 类.接口首字母大写 方法首字母小写 全局变量首字母小写 局部变量首字母大写 常量大写,单词间用下划线隔开 Java中 ...

  6. dubbo,hessian过滤器filter使用

    Dubbo的Filter在使用的过程中是我们扩展最频繁的内容,而且Dubbo的很多特性实现也都离不开Filter的工作,今天一起来看一下Filter的具体实现. Filter(过滤器)在很多框架中都有 ...

  7. java log4j 的一个bug

    java项目中使用log4j记录日志几乎成了标配, 最近一个项目中出了个问题  现象是这样的:  不连vpn程序一切正常,连上VPN启动程序 直接异常退出, 错误日志直接指向了 log4j 库 org ...

  8. BCVP,想真正为社区做努力的开发者们

    基于Net/Core,快速搭建 API & SPA 及微服务应用组织 BASE NETCORE (VUE) PROJECT TEAM 每一个.NET开发者都可以通过自己的开源项目(最好可以配套 ...

  9. Go之发送钉钉和邮箱

    smtp发送邮件 群发两个邮箱,一个163,一个QQ package main import ( "fmt" "net/smtp" "strings& ...

  10. 利用 Docker 构建一个简单的 java 开发编译环境

    目前 Java 语言的版本很多,除了常用的 Java 8,有一些遗留项目可能使用了 Java 7,也可能有一些比较新的的项目使用了 Java 10 以上的版本.如果想切换自己本地的 Java 开发环境 ...