近期想改公司内部的源码管控从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 ,打开“显示日志”

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

转载于:https://www.cnblogs.com/ceci/p/6197284.html

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

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

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

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

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

  3. Git分布式版本控制系统简介和使用

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

  4. 【分布式版本控制系统】GIT 托管网站 客户端

    上传到远程库 第一次上传 git add . git commit -m"备注信息" 之后上传 git add . git commit -m"备注信息" gi ...

  5. 22-07-14 西安 Git 分布式版本控制系统 、代码管理

    Git是目前世界上最先进的分布式版本控制系统,Git可以做源代码管理 Git的诞生 Linus (Linus Torvalds 林纳斯.托瓦斯)是在BitKeeper停止向开源社区提供免费版本后开发了 ...

  6. 分布式版本控制系统 Git 教程

    简介 Git 是什么? Git 是一个开源的分布式版本控制系统. 什么是版本控制? 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统. 什么是分布式版本控制系统? 介绍分布 ...

  7. 使用Git分布式版本控制系统

    GIT(分布式版本控制系统) Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理 ...

  8. Git 分布式版本控制系统

    目录 文章目录 目录 Git 分布式版本控制系统 Git 的基本概念 Git 的仓库结构 Git 的核心对象 Git 的数据结构 Git Flow 参考文档 Git 分布式版本控制系统 Git 是一个 ...

  9. 分布式版本控制系统Git学习资源收集汇总

    伴随着知乎上一个问题:GitHub 是怎么火起来的?被顶起200+的回答说到:Github不是突然火起来的,在Ruby社区Github其实从一开始就很流行,我们2009年搞Ruby大会就邀请了Gith ...

最新文章

  1. 如何组织成功的bug bash--摘录
  2. sonarQube安装及本机扫描C#项目
  3. Python列表变字典
  4. android 时钟进度条,CSS3时钟式进度条
  5. 下列哪个不是it行业技术岗位_28岁毕业进入IT互联网行业从事技术研发岗位是否还来得及...
  6. zookeeper集群部署 精简版本
  7. 怎么设置tomcat的默认应用
  8. 虚拟dom_虚拟DOM与dom diff
  9. 湖北2021高考成绩几点可以查询,2021年湖北高考成绩查询时间安排 什么时间出分...
  10. ubuntu-桌面菜单栏、任务栏、标题栏都不见了-解决办法
  11. python-opencv 角点检测的 FAST 算法
  12. nfc修改饭卡软件下载_手机nfc模拟门禁卡app-NFC卡模拟软件中文版下载安卓标准版-西西软件下载...
  13. 查看系统使用率命令 vmstat 输出详解!
  14. ios8之后的UIAlertController
  15. 我们扒了扒那个“阿里美女高管”,真的不简单(附最新回应)
  16. 新闻数据挖掘 Python实现
  17. 鲁大师linux系统打印机驱动怎么安装,鲁大师怎么安装打印机驱动?鲁大师安装打印机驱动教程...
  18. FabricV2.2测试网络搭建以及开发环境部署
  19. 咸鱼菌玩3D—123D物体操作
  20. 计算机无法连接移动硬盘,win7电脑连接移动硬盘后没反应怎么解决?win7电脑连接移动硬盘后没反应解决方法...

热门文章

  1. Eclipse项目启动不了
  2. 一个页面上有大量的图片(大型电商网站),加载很慢,你有哪些方法优化这些图片的加载,给用户更好的体验。...
  3. Android第三十一期 - 市面上所有引导页的效果
  4. 宁波Uber优步司机奖励政策(1月18日~1月24日)
  5. 构建多域名Exchange 2010邮件系统
  6. Call指令和Ret指令讲解
  7. 项目经理需要修炼的9件事
  8. 制备pdms膜的方法_“轻若鸿毛”的新型高弹性石墨烯-PDMS传感器
  9. 5G NGC — NWDAF 网络智能分析功能
  10. DPDK — 架构解析