zoukankan      html  css  js  c++  java
  • 分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境(服务器端及客户端)(转)

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

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

  • 相关阅读:
    一 数据库备份与恢复 2 数据库恢复 2.2 数据库重定向与重建
    附录 常用SQL语句 Dynamic SQL
    alt_disk_install 克隆系统rootvg
    Mysql版本升级
    DB29.7 HADR环境升级
    EMC VNX系列存储维护
    保存最开始的flink code,  数据是自动生成而不是通过kafka
    opentsdb restful api使用方法
    flink 和 hbase的链接
    opentsdb
  • 原文地址:https://www.cnblogs.com/ceci/p/6197284.html
Copyright © 2011-2022 走看看