近期想改公司内部的源码管控从TFS为git,发现yubinfeng大侠有关git的超详细大作,现将其转载并记录下,以防忘记,其原博客中有更加详细的git及.net开发相关内容。原文地址:http://www.cnblogs.com/yubinfeng/p/5182271.html

分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境

本篇导读:

前面介绍了两款代码管理工具VSS和SVN,这两种管理工具在很长一段时间曾为我们的代码管理提供了便利,本篇介绍一款思维方式完全不同(也可以说不合常理)的版本控制系统——Git。可以说Git目前非常火,这与设计者剑指偏锋的设计思想有很大关系。Git采用发散的思维管理代码,最大的特点就是分布式,他可以让来自不同地区的开发者共同完成一个作品,让每个开发者都可以发挥个性,同时又可以由发起者(即项目管理者)统一发布新版本。各个地区的开发者,还可以离线开发,这样版本管理系统之所以火,也和当今社会万众创新的氛围分不开。通过Git你可以尽情的发挥想象力,开源的春天已经到来,让我们启航吧!

 1. Git简介

名称:Git (Git的读音为/gɪt/,开源、免费、分布式的版本控制系统)

厂商:Linux 的缔造者 Torvalds 发起,为了更适合开源项目而设计,最初为Linux 版本,现已可以在Linux,Unix,Max,Windows各种系统中使用

功能:分布式版本控制、元数据方式存储而非文件方式、GIT的内容存储使用的是SHA-1哈希算法能确保代码内容的完整性等,太多了让我们慢慢挖掘。

优点:

(1)分布式:说起优点,大多都是相对其它管理工作比如SVN等,最大的优点就是分布式,最大化开发个性;

(2)轻负载:因为强化个体并且使用元数据存储而非文件形式,公用服务器压力较小;

(3)高性能:能快速处理分支,合并简单快捷;并且分个分支的冲突解决非常方便。

(4)完整性:在保存到 Git 之前,所有数据都要进行内容的校验和(checksum)计算,并将此结果作为数据的唯一标识和索引。如果文件在传输时变得不完整,或者磁盘损坏导致文件数据缺失,Git 都能立即察觉。

(5)离线式:离线工作是Git一个重要特点,这种模式在以前独占式的版本控制的年代,是无法想象的。

(6)还有很多……

缺点:说起缺点,就现有的几种版本控制系统相比较,几乎找不出明显缺点,唯一明显的就是代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息,这也是作者在设计之初的目标,以开源共享的大同世界为目标。再要说缺点为就是主观方面的,比较学习难度稍大点(这个不要怕,后面会慢慢介绍),整个使用过程比较不符合常规思维(这个也不要怕,总要推陈出新的嘛 )。

升级:开源项目,管理规范,升级及时。

推荐:★★★★★ (从小型到大型项目均适用,小到小小的代码片段,大到Android、facebook、PHP、spring、mybatis等等)

2. Git基础

Git虽然这么多优势,但大多教程中都使用命令方式操作,这让初学者望而却步,本篇尽量使用图形化界面介绍。

Git是一个全新思维的版本控制系统,如果你之前使用VSS,CVS,SVN等工具,那么你一定不要把相似的概念作对比,最好忘记以前的合并、分支之些具体实现模式。(这点慢慢展开)

Git的近乎所有操作都在本地进行,即离线式。不论你在何地,都可以投入开发之中,那么如何控制版本,这点不要担心,在你网络方便的时候上传更改即可。

Git在上传数据时进行一系统计算,最小化的数据传输,若文件没有变化,Git 不会再次保存,而只对上次保存的快照作一链接。

Git拥有较高的可靠性,只要你养成定期推送的习惯,你可以随意在本地计算机上做实验,不用担心弄丢数据,数据如何恢复,后面会慢慢介绍。

Git的文件有三种状态:已提交(committed),已修改(modified)和已暂存(staged)。已提交表示该文件已经被安全地保存在本地数据库 中了;已修改表示修改了某个文件,但还没有提交保存;已暂存表示把已修改的文件放在下次提交时要保存的清单中。

Git直接记录快照,而非差异比较。Git 和其他版本控制系统的主要差别在于,Git 只关心文件数据的整体是否发生变化,而大多数其他系统则只关心文件内容的具体差异。

如果没有理解,没关系,慢慢来。

3. Git 基本工作流程

(1). 在工作目录中修改某些文件。

(2). 对修改后的文件进行快照,然后保存到暂存区域。

(3). 提交更新,将保存在暂存区域的文件快照永久转储到 Git 目录中。

因此,我们可以从文件所处的位置来判断状态:如果是 Git 目录中保存着的特定版本文件,就属于已提交状态;

如果作了修改并已放入暂存区域,就属于已暂存状态;

如果自上次取出后,作了修改但还没有放到暂存区域,就 是已修改状态。

后面我们会进一步了解其中细节,并学会如何根据文件状态实施后续操作,以及怎样跳过暂存直接提交。

4.Git的安装前准备

4.1 安装包简介

终于进入到激动人心的时刻了,通过上面的介绍,看着很神秘的东东,马上就要进入我们的视野中了。

在本系列文章中,我只介绍如何在Windows系统下安装Git(虽说Windows下使用多Linux/Unix工具需要模拟环境,带来很多不便,但是国内大多同学还是使用Windows),其他操作系统的同学请参照其他文章。

服务器端工具:

Git 官方的服务端 需要使用命令行创建版本库等操作。

gitstack 第三方开源服务器端,专为Windows订制,集成了较成熟悉版本的Git,并且Web方式的操作界面,无需指令。

客户端工具如下:

TortoiseGit (TortoiseSVN的兄弟)图形化界面做的最好的Git客户端

Git Extensions (Visual Studio 2013/2015集成的Git客户端)让您不使用命令行控制的 Git 的图形化客户端

git-cola 是一个Python开发的时尚和强大的git图形用户界面

EGit - (Java开发者Git客户端插件)利用EGit可以在 Eclipse中实现分行,合并,复制和同步库

还有很多,我们会重点介绍TortoiseGit 和 Git Extensions

4.2  安装包下载

我们下载Windows环境下我们所需的安装包

(1)服务器端

对于服务器端环境配置这方面,网上现有的资料并不是很多,特别是在Windows环境下的服务器搭建

喜欢使用Git原生版本的同学,请参照下面几篇文章:

Windows+Git+COPSSH 方式,URL:http://blog.csdn.net/aaron_luchen/article/details/10498181   http://blog.csdn.net/code_style/article/details/38764203

对于Git命令行方式操作比较全的资料,URL:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

顺便赋上Git官方的下载地址

Git服务器端Windows版本安装包 (包含32位和64位,根据你的服务器操作系统选择)

Git-2.7.0.2-64-bit.exe

官网URL:http://git-scm.com/download/win

(注意:我们下面将要使用的服务器端环境并不需要下载原版)

不过COPSSH也不是免费的,并且上面的环境下还需要使用一些命令来完成部分操作(我并不是歧视使用命令行的方式操作,首先这是一个入门文章,力求简单,再者服务器端的搭建使用Linux更合适)

下面,我在本篇文章中为了让大家尽快用上Git,我们也剑走偏锋使用第三方纯界面的服务器端gitstack ,他集成了Git,因此我们的安装下载,并不需要专门下载Git服务器端了

因为集成了apache和Git,这个安装包有点大126M,耐心下载吧

准备下载的第一个安装包:

gitstack 开源集成Git的界面服务器端

官网URL:http://gitstack.com/download/

下载过程如下图:

(2)客户端

TortoiseGit安装包 和 中文语言包(包含32位和64位,根据你的客户端操作系统选择,我以64位为例介绍)

官方URL:http://tortoisegit.org/download/ 

TortoiseGit-1.8.16.0-64bit.msi

TortoiseGit-LanguagePack-1.8.16.0-64bit-zh_CN.msi

下载过程如下图:

下载完成的三个安装包如下:

5. 服务器端安装

准备工作就绪,我们开始安装服务器端,双击 GitStack_2.3.8.exe

注意:此时,如果有这个提示,我们就需要暂时关闭占用80端口的服务了,怎么关闭呢,先找到什么服务占用了80

运行,CMD,输入netstat -aon|findstr "80" 查找到 占用80的程序的PID

然后在任务管理中,找到 停止即可

然后一路安装完成,会自动打开管理界面

默认用户和密码admin登录

这个界面是多么熟悉啊,和SVN相似,创建 版本库 、创建组、创建用户、设置

到此我们服务器的安装就完成了,使用GitStack创建基于Windows服务器端就是这么简单。下面我们介绍它的使用。

5. Git服务器端GitStack的使用

GitStack的使用非常简单,和SVN服务端没多大区别,先看一下设置

完成设置后,我们创建一个版本库和一个组及2个用户

将2用户加入该组

接下来,我们给版本库授权组MyGitGroup,于是,这两个用户就拥有该版本库的操作权

先创建一个版本库 MyGitObject,并配授权组或用户(这里我们授权组,就拥有该组下的两个用户了)

将刚才建的 组  MyGitGroup加入该版本库

设置组的读写权限

到此服务端的配置完成,我们可以看到 ,在设置的版本库目录中,多了一个我们刚创建的版本库文件夹 MyGitObject.git

喜欢使用命令行的同学,仍然可以在这里打开操作 ,可以看到 GitStack的唯一作用,就是帮我们提供了一个http服务+一个界面化配置而且,我们的核心还是Git

 6.Git客户端的安装

客户端工具众多,我们选择前面已经下载好的“小乌龟”

找到前面下载好的TortoiseGit安装包和语言包

安装客户端开始

全程下一步,完工,然后安装语言包(喜欢英文版的可以完工了)

语言包,下一步,完成!

语言包安装完成后,我们在开始菜单中找到 TortoiseGit的设置

选择语言为:简体中文

客户完工!@!

7.Git客户端TortoiseGit的使用

继续介绍TortoiseGit的使用

 7.1 获取服务器版本库

先在本地计算机创建一个Git的工作目录 F:\GitWorkArea

打开目录在空白处右击,可以看到 TortoiseGit的菜单,初始操作可以选择Git克隆,即获取服务端版本库,也可以选择创建一个新的版本库

因为之前我们在服务端已经创建过了一个版本库,我们选择 克隆。

在这里URL我们输入 ,之前服务器端创建的版本库地址,点确定后,这时需要我们认证一下用户和密码,这是必须的嘛 ,不然谁都可以克隆我们的版本了

用户和密码验证完成后,版本库克隆成功。

7.2 创建新文件

接下来,必须是迫不及待的创建一个文件,开始我们的Git之旅了

随便写点什么,然后保存,关闭。

7.3 提交

提交我们新建的文件到版本库,非常简单,在工作目空白处右击

然后点击,提交 到 master

这时,会有一个提示,需要设置一个交互的mail

在弹出的设置上,完成后确定

然后填写备注,记得养成良好的使用习惯,提交要写备注哦,然后选中文件,确定

提交完成~

7.4 查看变更日志

查看日志前,我们在工作内再次创建一个文件,提交;然后再次打开该文件,修改一下内容提交。

在工作目录右击 选择 TortoiseGit ,打开“显示日志”

在日志窗口,我们可以看到三次变更的备注等信息,非常全面

分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境(服务器端及客户端)(转)的更多相关文章

  1. [.net 面向对象程序设计进阶] (25) 团队开发利器(四)分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境

    [.net 面向对象程序设计进阶] (25) 团队开发利器(四)分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境 本篇导读: 前面介绍了两款代码管理工具 ...

  2. 分布式版本控制系统Git-----3.图形化Tortoisegit创建本地库并且提交到远程服务器上

    [前提你已经有了自己的远程仓库帐号密码和HTTP地址] PS:图形化会方便,但是个人认为还是敲命令比较好,会锻炼人的思维和逻辑. 1.首先在任意一个地方创建test目录.若要把test目录放在Git的 ...

  3. [.net 面向对象程序设计进阶] (26) 团队开发利器(五)分布式版本控制系统Git——图形化Git客户端工具TortoiseGit

    [.net 面向对象程序设计进阶] (26) 团队开发利器(五)分布式版本控制系统Git——图形化Git客户端工具TortoiseGit 读前必备: 接上篇: 分布式版本控制系统Git——使用GitS ...

  4. [.net 面向对象程序设计进阶] (27) 团队开发利器(六)分布式版本控制系统Git——在Visual Studio 2015中使用Git

    [.net 面向对象程序设计进阶] (26) 团队开发利器(六)分布式版本控制系统Git——在Visual Studio 2015中使用Git 本篇导读: 接上两篇,继续Git之旅 分布式版本控制系统 ...

  5. Git(分布式版本控制系统)在Windows下的使用-将代码托管到开源中国(oschina)

    一.Git是什么?     Git --- The stupid content tracker, 傻瓜内容跟踪器.Git是目前世界上最先进的分布式版本控制系统. 二.SVN与Git的最主要的区别?  ...

  6. 一、Git分布式版本控制系统

    1.引入 在开发一个软件项目时,本地只有几十行代码或几百行代码时还可以维护,但当代码达到一定的数量后或两三个人共同开发一个项目时,就很容易会出现代码混乱.冲突.排错难等问题.一旦开发完工以后发现整个项 ...

  7. GIT(分布式版本控制系统)

    Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.[1] Git的读音为/gɪt/. Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本 ...

  8. 杂项:GIT (分布式版本控制系统)

    ylbtech-杂项:GIT (分布式版本控制系统) Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git的读音为/gɪt/.Git是一个开源的分布式版本控制系统 ...

  9. git——分布式版本控制系统

    Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件 ...

随机推荐

  1. (zxing.net)二维码PDF417的简介、实现与解码

    一.简介 二维码PDF417是一种堆叠式二维条码.PDF417条码是由美国SYMBOL公司发明的,PDF(Portable Data File)意思是“便携数据文件”.组成条码的每一个条码字符由4个条 ...

  2. 【转】如何成为一名优秀的web前端工程师(前端攻城师)?

    [转自]http://julying.com/blog/how-to-become-a-good-web-front-end-engineer/ 程序设计之道无远弗届,御晨风而返.———— 杰佛瑞 · ...

  3. 完全卸载mysql数据库教程

    转自:https://jingyan.baidu.com/article/f96699bbaa8fc1894f3c1b5a.html 1,控制面板——>所有控制面板项——>程序和功能,卸载 ...

  4. linux安装spark-2.3.0集群

    (安装spark集群的前提是服务器已经配置了jdk并且安装hadoop集群(主要是hdfs)并正常启动,hadoop集群安装可参考<hadoop集群搭建(hdfs)>) 1.配置scala ...

  5. Dota2APP--第一天

    从今天开始,下定决心自己独立开发一个有关于Dota2的APP,因为非常喜欢这个游戏恰好自己又是做iOS移动开发的所以萌生了这个想法.希望可以坚持下去,有喜欢dota2的朋友也可以提点建议. 一.项目的 ...

  6. Gym-101873D-Pants On Fire(闭包)

    原题链接:2017-2018 ACM-ICPC German Collegiate Programming Contest (GCPC 2017) Pants On Fire Donald and M ...

  7. eclipse首次使用的基本设置

    最近,一些刚开始学习Java的朋友使用eclipse遇到了一些编码导致的问题向我询问,那就总结一下首次安装eclipse后我们大体应该设置哪些基本东西吧~大神们呐就不用看啦. 一.修改工作空间默认编码 ...

  8. ReactNative常用组件库 victory-native 图表

    victory-native 是不错的图表组件,支持很多种图表 地址: https://github.com/FormidableLabs/victory-native 先安装 react-nativ ...

  9. SQL语句02(连表查询)

    ---恢复内容开始--- sql1992sql分类    1.笛卡尔积 (表乘表) 例:select * from emp,dept;    2.等值连接 表的连接条件使用“=” 例:select * ...

  10. css的reset和常用的html标签的默认样式整理

    先看下常用的这些标签浏览器的默认样式有哪些: body{ margin: 8px;} hr{ border:1px inset; margin-top:.5em;margin-bottom:.5em; ...