git简介

BitterCoffee BitterCoffee     2022-09-06     613

关键词:

由于工作需要,代码版本控制工具由SVN换为了Git。Git对于我来说,很陌生,不清楚其工作原理,所以查询了一些资料,将自己所得知的内容来汇总一下,梳理一下这方面的知识,同时也给其他想了解Git的童鞋们,提供点参考资料!!

了解软件,我们一般都了解其来源、优缺点(或与其他系统的比较)、安装配置、软件的架构,工作原理和使用,对于Git来说也是一样,这里也就这几个方面来说!

版本控制工具简介


问题的发现与解决永远是我们软件行业前进的动力与根源!

说到版本控制工具,不得不说,我们为什么需要它,也就是我们遇到了什么问题,需要用它来解决。

在对文档进行管理的时候,我们通常会遇到2大问题:1.文档怎么回滚到编辑之前的状态;2.如果两个人同时编辑某个共享文件,先进行编辑的人所做的修改内容会被覆盖。

为了解决这2个问题,前辈们开发了一系列的版本控制系统,其中Git就是这些版本控制系统中十分出色的一个!

Git简介


Git是Linus Torvalds 为了帮助管理 Linux 内核开发,而用C语言开发的一个开源的分布式版本控制工具,注意这里对分布式的强调。不同于Git,像Perforce、SVN和CVS这类版本控制工具都是集中式的。

Git常用于敏捷高效地处理任何或小或大的项目。

下面大概介绍下集中式版本控制工具和分布式版本控制工具的区别。

 集中式

所谓集中式的版本控制,就是在一个系统中只有一个机器是服务端,其他机器全是客户端。

以SVN版本控制为例,在一个系统中会有一个SVN服务器,所有的代码以及版本信息都保存在这个服务器上。每个客户端可以从服务器get下来一份代码,然后在本地修改,最后submit修改的代码。

可以看到集中式的版本控制还是有一些问题的:

  • 网络依赖性强,工作环境保持网络连接,如果网络断掉了,所有的客户端就无法工作了。
  • 安全性较弱,所有的代码以及版本信息保存在服务器中,一旦服务器挂掉了,代码和版本控制信息就丢失了。

分布式

而在分布式版本控制系统中,没有服务端/客户端的概念,每台机器都是一个服务器。也就是说,在分布式本版控制系统中,每台机器都有一份代码,并且有代码的版本信息。

所以可以看到Git的优势:

  • 每台机器都是一台服务器,无需依赖网络就可以帮自己的更新提交到本地服务器,支持离线工作。当有网络环境的时候,就可以把更新推送给其他服务器。
  • 安全性高,每台机器都有代码以及版本信息的维护,所有即使某些机器挂掉了,代码依然是安全的。

在Git中,同步更新的方式有很多种,可以把自己的更新推送给别人;也可以生成一个diff的patch,通过邮件方式把这个patch发送给别人。这些都将会在后面的文章中介绍。

建议:虽然分布式版本控制没有服务端的概念,但一般在一个Git系统中,为了方便大家交换更新,会找一台机器作为中心服务器,这台机器的目地只是为了方便大家交换更新。即使这台中心服务器挂了,大家依然可以继续工作,只是相互之间交换更新比较麻烦。

Git VS SVN

Git 与 SVN 区别点:

  • 1、GIT是分布式的,SVN不是:这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。

  • 2、GIT把内容按元数据方式存储,而SVN是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。

  • 3、GIT分支和SVN的分支不同:分支在SVN中一点不特别,就是版本库中的另外的一个目录。

  • 4、GIT没有一个全局的版本号,而SVN有:目前为止这是跟SVN相比GIT缺少的最大的一个特征。

  • 5、GIT的内容完整性要优于SVN:GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

环境部署


安装

Git刚开始只能支持Linux和Unix环境,后来才慢慢的支持Windows系统。

由于我主要是在Windows环境下工作,所以下面就主要介绍Windows上面安装Git。一般在Windows下使用Linux/Unix的工具时,需要Cygwin这样的模拟环境。但是已经有人把模拟环境和Git打包好了,msysgit是Windows版的Git,从这里下载,然后按默认选项安装即可。

Git 各平台安装包下载地址为:http://git-scm.com/downloads

安装完成后,在开始菜单里找到"Git"->"Git Bash",弹出一个命令行窗口,就说明Git安装成功!

配置

Git 提供了一个叫做 git config 的工具,专门用来配置或读取相应的工作环境变量。

给Git环境配置全局的用户名和邮箱地址,这样每一个从这台机器上提交的更新都会标上这些用户信息。

git config --global user.name “your user name”
git config --global user.email “your email address” 

Git命令流


 在Git中支持上百个命令,每个命令又有很多的选项,所以初学者看到这些就会有一些恐惧。

其实,真正接触过Git一段时间后,会慢慢的发现我们会经常使用的命令也就十几二十个,掌握了这些命令之后就可以满足我们大部分的日常工作了。

下面是我根据日常使用整理的一个Git命令流图,包括了一些常用的命令,可以方便自己查阅。

不要被密密麻麻的箭头吓到,其实都是比较初级、常用的命令,后面的文章会详细介绍图中命令的用法以及Git中的一些基本概念。注意,图中没有涉及branch、patch等信息,但是后面的文章会进行介绍。

 

 

 

                                      Fighting!!!

分布式版本控制系统git简介与应用

分布式版本控制系统Git简介与应用一、Git简介二、Git特性三、Git客户端安装配置四、Git使用 一、Git简介Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。Git是LinusTorvalds为了帮助... 查看详情

git简介

一、Git简史  二、Git的官网  官网地址:https://git-scm.com/三、Git的优势  ?大部分操作在本地完成,不需要联网  ?完整性保证  ?尽可能添加数据而不是删除或修改数据  ?分支操作非常快捷流畅  ?与Linux命令全面兼... 查看详情

git简介

...来说也是一样,这里也就这几个方面来说!版本控制工具简介问题的发现与解决 查看详情

git简介

GIT介绍:Git是一个开源的分布式版本控制软件,用以有效、高速的处理从很小到非常大的项目版本管理。GitHuB是一个基于Git的远程文件托管平台。如果想要将文件内容以及版本记录同时保存在远程,则需要结合GitHub来使用。使用... 查看详情

git-简介

一、什么是Git?  Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。特点简单易用、功能强大、速度快。二、与其他版本控制系统的区别?  Git和其它版本控制系统的主要差别在于Git对待数据... 查看详情

git学习之路-git简介

▓▓▓▓▓▓大致介绍  Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目,可以有效、高速的处理从很小到非常大的项目版本管理。   Git是LinusTorvalds为了帮助管理Linux内核开发而开... 查看详情

git学习——简介使用

...ww.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/简介:  学习git之前,相信大家都知道还有一个东西叫github,我们先要搞明白这两个都是什么东西!  1.git:基于C语言开发的版本控制工具,简单的说就是和svn实现类... 查看详情

git简介和下载安装

Git简介: Git是处理文本文件的版本管理系统。 Github获取Git的提交历史,并保存在互联网,以供远程(联网)访问。工作过程:1)创建本地分支,在本地分支编辑,修改,提交。2)push到远程分支3)申请merge到主分支,发... 查看详情

git简介

【概述】是全球最好的分布式版本管理系统(软件)。 【作用】 备份代码协同开发版本管理冲突管理与github协同工作里程碑管理分支管理 【特点】快速无中心仓库开源分布式  查看详情

git入门简介(代码片段)

Git简介:    介绍Git之前,先简单介绍一下版本控制系统。版本控制系统的产生是为了方便多用户对工程及项目的编写、改动的协同系统。版本控制系统分为集中式和分布式。在Git出现之前,版本控制系统是CVS、SVN操作系统... 查看详情

廖雪峰git教程笔记与总结--git简介常用命令分支管理(代码片段)

...一些常用命令做一个整理总结。本文要点分为:1、Git简介;2、Git常用命令;3、Git分支管理。一、Git简介什么是Git?Git是目前世界上最先进的分布式版本控制系统(没有之一)。Git的诞生个人觉得还是很有... 查看详情

git简介

Git是什么?Git是目前世界上最先进的分布式版本控制系统(没有之一)。Git有什么特点?简单来说就是:高端大气上档次!那什么是版本控制系统?如果你用MicrosoftWord写过长篇大论,那你一定有这样的经历:想删除一个段落,... 查看详情

git学习之简介

 一.前言 史上最浅显易懂的Git教程!为什么要编写这个教程?因为我在学习Git的过程中,买过书,也在网上Google了一堆Git相关的文章和教程,但令人失望的是,这些教程不是难得令人发指,就是简单得一笔带过,或者,... 查看详情

git入门简介

1、什么是GitGit是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git是LinusTorvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。Git与常用的版本控制工具CVS,Subversion等不同,它采用... 查看详情

git使用简介(代码片段)

附上廖雪峰老师Git教程https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000创建版本库第一步$mkdirlearngit$cdlearngit$pwd/Users/michael/learngit第二步通过gitinit命令把这个目录变成Git可以管理的仓库:$gitinitIniti 查看详情

git简介

什么是版本管理工具为什么要使用版本管理工具?老板要求小王写一个策划方案,当然写完给老板看后,结果....... 650)this.width=650;"src="http://www.huzhen.org/content/uploadfile/201612/4a471480570165.png"title="点击查看原图"alt="1.png"border="0"widt... 查看详情

github简介

前言学习使我快乐 一。git与github关系git是一个版本控制工具github是一个用git做版本控制的项目托管平台。 二。git与svn的区别Git是由著名Linux内核(Kernel)开发者LinusTorvalds为了便利维护linux而开发的。git是一个分布式的版本... 查看详情

git简介

官方说明:https://git-scm.com/book/zh/v1/%E8%B5%B7%E6%AD%A5 seeaslo:  git是去中心化的版本管理工具,每一个本地仓库都是一份历史记录的完整拷贝。(但是为了便于协作开发,通常都会一台机器充当远程服务器,但是这台服务器相对... 查看详情