Gitblit介绍

Gitblit 是一个纯 Java 库用来管理、查看和处理 Git 资料库.相当于 Git 的 Java 管理工具,支持linux系统。

Git是分布式版本控制系统,它强调速度、数据一致性,并且支持分布式、非线性工作流。它最初由Linus Torvalds在2005年为Linux内核设计和开发,使用GPLv2证书,并从此成为软件开发中使用最广泛的版本控制系统。

Gitblit是完全开源的软件,它基于纯粹的Java堆栈,被设计以在Git仓库速度和效率方面胜任从小型到极大型的项目。它很容易学习和上手,并有着闪电般的性能。它在很多方面远胜 Subversion、CVS、Perforce和ClearCase等SCM(版本控制)工具,比如,如快速本地分支、易于暂存、多工作流等。

下面介绍Gitblit的安装(Ubuntu/Fedora/CentOS)

Git是一款注重速度、数据完整性、分布式支持和非线性工作流的分布式版本控制工具。Git最初由Linus Torvalds在2005年为Linux内核开发而设计,如今已经成为被广泛接受的版本控制系统。

和其他大多数分布式版本控制系统比起来,不像大多数客户端-服务端的系统,每个Git工作目录是一个完整的仓库,带有完整的历史记录和完整的版本跟踪能力,不需要依赖网络或者中心服务器。像Linux内核一样,Git也是在GPLv2许可证下分发的自由软件。

本篇教程我会演示如何安装 gitlit 服务器。gitlit的最新稳定版是1.6.2。Gitblit是一款开源、纯Java开发的用于管理、浏览和提供Git仓库服务的软件。它被设计成一款为希望托管中心仓库的小型工作组服务的工具。

  1. mkdir -p /opt/gitblit; cd /opt/gitblit; wget http://dl.bintray.com/gitblit/releases/gitblit-1.6.2.tar.gz

列出解压后目录内容:

  1. root@vps124229 [/opt/gitblit]# ls
  2. ./ docs/ gitblit-stop.sh* LICENSE service-ubuntu.sh*
  3. ../ ext/ install-service-centos.sh* migrate-tickets.sh*
  4. add-indexed-branch.sh* gitblit-1.6.2.tar.gz install-service-fedora.sh* NOTICE
  5. authority.sh* gitblit.jar install-service-ubuntu.sh* reindex-tickets.sh*
  6. data/ gitblit.sh* java-proxy-config.sh* service-centos.sh*

默认配置文件在data/gitblit.properties,你可以根据需要自己修改。

启动gitlit服务:

通过service命令:

  1. root@vps124229 [/opt/gitblit]# cp service-centos.sh /etc/init.d/gitblit
  2. root@vps124229 [/opt/gitblit]# chkconfig --add gitblit
  3. root@vps124229 [/opt/gitblit]# service gitblit start
  4. Starting gitblit server
  5. .

手动启动:

  1. root@vps124229 [/opt/gitblit]# java -jar gitblit.jar --baseFolder data
  2. 2015-01-10 09:16:53 [INFO ] *****************************************************************
  3. 2015-01-10 09:16:53 [INFO ] _____ _ _ _ _ _ _
  4. 2015-01-10 09:16:53 [INFO ] | __ \(_)| | | | | |(_)| |
  5. 2015-01-10 09:16:53 [INFO ] | | \/ _ | |_ | |__ | | _ | |_
  6. 2015-01-10 09:16:53 [INFO ] | | __ | || __|| '_ \ | || || __|
  7. 2015-01-10 09:16:53 [INFO ] | |_\ \| || |_ | |_) || || || |_
  8. 2015-01-10 09:16:53 [INFO ] \____/|_| \__||_.__/ |_||_| \__|
  9. 2015-01-10 09:16:53 [INFO ] Gitblit v1.6.2
  10. 2015-01-10 09:16:53 [INFO ]
  11. 2015-01-10 09:16:53 [INFO ] *****************************************************************
  12. 2015-01-10 09:16:53 [INFO ] Running on Linux (3.8.13-xxxx-grs-ipv6-64-vps)
  13. 2015-01-10 09:16:53 [INFO ] Logging initialized @842ms
  14. 2015-01-10 09:16:54 [INFO ] Using JCE Unlimited Strength Jurisdiction Policy files
  15. 2015-01-10 09:16:54 [INFO ] Setting up HTTPS transport on port 8443
  16. 2015-01-10 09:16:54 [INFO ] certificate alias = localhost
  17. 2015-01-10 09:16:54 [INFO ] keyStorePath = /opt/gitblit/data/serverKeyStore.jks
  18. 2015-01-10 09:16:54 [INFO ] trustStorePath = /opt/gitblit/data/serverTrustStore.jks
  19. 2015-01-10 09:16:54 [INFO ] crlPath = /opt/gitblit/data/certs/caRevocationList.crl
  20. 2015-01-10 09:16:54 [INFO ] Shutdown Monitor listening on port 8081
  21. 2015-01-10 09:16:54 [INFO ] jetty-9.2.3.v20140905
  22. 2015-01-10 09:16:55 [INFO ] NO JSP Support for /, did not find org.apache.jasper.servlet.JspServlet
  23. 2015-01-10 09:16:55 [INFO ]
  24. 2015-01-10 09:16:55 [INFO ] ----[com.gitblit.manager.IRuntimeManager]----
  25. 2015-01-10 09:16:55 [INFO ] Basefolder : /opt/gitblit/data
  26. 2015-01-10 09:16:55 [INFO ] Settings : /opt/gitblit/data/gitblit.properties
  27. 2015-01-10 09:16:55 [INFO ] JVM timezone: America/Montreal (EST -0500)
  28. 2015-01-10 09:16:55 [INFO ] App timezone: America/Montreal (EST -0500)
  29. 2015-01-10 09:16:55 [INFO ] JVM locale : en_US
  30. 2015-01-10 09:16:55 [INFO ] App locale : <client>
  31. 2015-01-10 09:16:55 [INFO ] PF4J runtime mode is 'deployment'
  32. 2015-01-10 09:16:55 [INFO ] Enabled plugins: []
  33. 2015-01-10 09:16:55 [INFO ] Disabled plugins: []
  34. 2015-01-10 09:16:55 [INFO ]
  35. 2015-01-10 09:16:55 [INFO ] ----[com.gitblit.manager.INotificationManager]----
  36. 2015-01-10 09:16:55 [WARN ] Mail service disabled.
  37. 2015-01-10 09:16:55 [INFO ]
  38. 2015-01-10 09:16:55 [INFO ] ----[com.gitblit.manager.IUserManager]----
  39. 2015-01-10 09:16:55 [INFO ] ConfigUserService(/opt/gitblit/data/users.conf)
  40. 2015-01-10 09:16:55 [INFO ]
  41. 2015-01-10 09:16:55 [INFO ] ----[com.gitblit.manager.IAuthenticationManager]----
  42. 2015-01-10 09:16:55 [INFO ] External authentication disabled.
  43. 2015-01-10 09:16:55 [INFO ]
  44. 2015-01-10 09:16:55 [INFO ] ---- [com.gitblit.transport.ssh.IPublicKeyManager]----
  45. 2015-01-10 09:16:55 [INFO ] FileKeyManager (/opt/gitblit/data/ssh)
  46. 2015-01-10 09:16:55 [INFO ]
  47. 2015-01-10 09:16:55 [INFO ] ----[com.gitblit.manager.IRepositoryManager]----
  48. 2015-01-10 09:16:55 [INFO ] Repositories folder : /opt/gitblit/data/git
  49. 2015-01-10 09:16:55 [INFO ] Identifying repositories...
  50. 2015-01-10 09:16:55 [INFO ] 0 repositories identified with calculated folder sizes in 11 msecs
  51. 2015-01-10 09:16:55 [INFO ] Lucene will process indexed branches every 2 minutes.
  52. 2015-01-10 09:16:55 [INFO ] Garbage Collector (GC) is disabled.
  53. 2015-01-10 09:16:55 [INFO ] Mirror service is disabled.
  54. 2015-01-10 09:16:55 [INFO ] Alias UTF-9 & UTF-18 encodings as UTF-8 in JGit
  55. 2015-01-10 09:16:55 [INFO ] Preparing 14 day commit cache. please wait...
  56. 2015-01-10 09:16:55 [INFO ] 0 repositories identified with calculated folder sizes in 0 msecs
  57. 2015-01-10 09:16:55 [INFO ] built 14 day commit cache of 0 commits across 0 repositories in 2 msecs
  58. 2015-01-10 09:16:55 [INFO ]
  59. 2015-01-10 09:16:55 [INFO ] ----[com.gitblit.manager.IProjectManager]----
  60. 2015-01-10 09:16:55 [INFO ]
  61. 2015-01-10 09:16:55 [INFO ] ----[com.gitblit.manager.IFederationManager]----
  62. 2015-01-10 09:16:55 [INFO ]
  63. 2015-01-10 09:16:55 [INFO ] ----[com.gitblit.manager.IGitblit]----
  64. 2015-01-10 09:16:55 [INFO ] Starting services manager...
  65. 2015-01-10 09:16:55 [INFO ] Federation passphrase is blank! This server can not be PULLED from.
  66. 2015-01-10 09:16:55 [INFO ] Fanout PubSub service is disabled.
  67. 2015-01-10 09:16:55 [INFO ] Git Daemon is listening on 0.0.0.0:9418
  68. 2015-01-10 09:16:55 [INFO ] SSH Daemon (NIO2) is listening on 0.0.0.0:29418
  69. 2015-01-10 09:16:55 [WARN ] No ticket service configured.
  70. 2015-01-10 09:16:55 [INFO ]
  71. 2015-01-10 09:16:55 [INFO ] ----[com.gitblit.manager.IPluginManager]----
  72. 2015-01-10 09:16:55 [INFO ] No plugins
  73. 2015-01-10 09:16:55 [INFO ]
  74. 2015-01-10 09:16:55 [INFO ] All managers started.

打开浏览器,依据你的配置进入http://localhost:8080 或者 https://localhost:8443。 输入默认的管理员授权:admin / admin 并点击Login 按钮

snapshot2

添加用户:

snapshot1

添加仓库:

snapshot3

用命令行创建新的仓库:

  1. touch README.md
  2. git init
  3. git add README.md
  4. git commit -m "first commit"
  5. git remote add origin ssh://admin@142.4.202.70:29418/Programming.git
  6. git push -u origin master

从命令行推送已有的仓库:

  1. git remote add origin ssh://admin@142.4.202.70:29418/Programming.git
  2. git push -u origin master

完成!!

下面介绍在Linux下使用Gitblit工具创建Git仓库服务

Gitblit的功能

  • 它可以做为一个哑仓库视图,没有管理控制以及用户账户。
  • 它可以做为完整的Git服务,拥有克隆、推送和仓库访问控制。
  • 它能独立于其他Git工具使用(包括实际的Git),它能和您已有的工具协作。

1.创建Gitblit安装目录

首先我们将在我们的服务器上建立一个目录,并在该目录下安装最新的Gitblit。

  1. $ sudo mkdir -p /opt/gitblit
  2. $ cd /opt/gitblit

2. 下载并解压

现在,我们将从Gitblit官方站点下载最新版的Gitblit。这里我们将安装1.6.2版本。所以,请在安装时根据具体的版本对命令进行修改。

  1. $ sudo wget http://dl.bintray.com/gitblit/releases/gitblit-1.6.2.tar.gz

接下来,我们将下载到的tar压缩包解压至之前创建的目录 /opt/gitblit/

  1. $ sudo tar -zxvf gitblit-1.6.2.tar.gz

3.配置并运行

现在,我们将对Gitblit进行配置。如果你想要定制Gitblit的行为,你可以修改gitblit/data/gitblit.properties。在完成配置后,我们将运行安装好的gitblit。有两种方式来运行gitblit,第一种是通过下面的命令手动运行:

  1. $ sudo java -jar gitblit.jar --baseFolder data

另一种是将gitblit添加为服务。下面是在linux下将gitblit添加为服务的步骤。

由于我在使用Ubuntu,下面的命令将是 sudo cp service-ubuntu.sh /etc/init.d/gitblit,所以请根据你的发行版修改文件名service-ubuntu.sh为相应的你运行的发行版。

  1. $ sudo ./install-service-ubuntu.sh
  2. $ sudo service gitblit start

在你的浏览器中打开http://localhost:8080https://localhost:8443,也可以将localhost根据本地配置替换为IP地址。输入默认的管理员凭证:admin / admin并点击login按钮。

现在,我们将添加一个新的用户。首先,你需要以admin用户登录,username = admin,password =admin

然后,点击用户图标 > users > (+) new user 来创建一个新用户,如下图所示。

现在,我们将创建一个开箱可用的仓库。点击 repositories > (+) new repository。然后,如下图所示添加新的仓库。

使用命令行创建一个新的仓库

  1. touch README.md
  2. git init
  3. git add README.md
  4. git commit -m "first commit"
  5. git remote add origin ssh://arunlinoxide@localhost:29418/linoxide.com.git
  6. git push -u origin master

请将其中的用户名arunlinoxide替换为你添加的用户名。

在命令行中push一个已存在的仓库

  1. git remote add origin ssh://arunlinoxide@localhost:29418/linoxide.com.git
  2. git push -u origin master

注意:强烈建议所有人修改用户名“admin”的密码。

Gitblit-Git版本服务器环境部署的更多相关文章

  1. Gitblit版本服务器环境部署记录

    Gitblit介绍Gitblit 是一个纯 Java 库用来管理.查看和处理 Git 资料库.相当于 Git 的 Java 管理工具,支持linux系统.Git是分布式版本控制系统,它强调速度.数据一 ...

  2. Visual Studio Git代码管理环境部署

    Visual Studio 2010 部署Git代码管理环境. 第一:首先做Git的安装和环境部署 1.下载并安装Git软件,在windows环境下的Git叫做“msysGit”,官网地址为https ...

  3. linux服务器环境部署(三、docker部署nginx)

    一.下载nginx镜像 官网地址:https://hub.docker.com/_/nginx #下载镜像 默认为最新版本 docker pull nginx#下载指定版本 docker pull n ...

  4. 分布式版本库——Windows下Git的环境部署以及在GitHub上开源自己的项目

    分布式版本库--Windows下Git的环境部署以及在GitHub上开源自己的项目 这几天着实忙的焦头烂额,可惜不是搞技术,今天周日,难得闲下来,写篇大家都想学习的Git教程,其实廖雪峰老师的网站已经 ...

  5. 搭建Git服务器环境----Git hooks代码自动部署

    引言:自己想搭一套git的服务端环境,不想用github码云等.经多方资料整合,实验总结,以下是亲测有效的方式.可用于公司日常开发 一.搭建Git环境 ① 安装 Git Linux 做为服务器端系统, ...

  6. Git环境部署

     部署git 服务器环境   系统环境准备 192.168.30.25   master     git   gitlab 192.168.30.26   client      git 关闭防火墙 ...

  7. Windows 7 下使用gitblit + git 搭建小组内文件版本控制环境

    一.GitBlit下载及配置 使用前先看下GitBlit的百科介绍,很简洁:需要java运行环境:是一个纯 Java 库用来管理.查看和处理Git 资料库.即一个基于Java的分布式版本控制系统. 1 ...

  8. jenkins+git+maven搭建自动化部署项目环境

    简介    折腾了两个晚上,趁着今晚比较有空,把jenkins+git+maven搭建自动化部署项目环境搭建的过程记录一下,这里我把github作为git的远程仓库(https://github.co ...

  9. 环境部署(七):linux下Jenkins+Git+JDK持续集成

    前面几篇博客介绍了linux下安装Jenkins.Git.JDK以及Git基础教程和Git关联github等内容,这篇博客,介绍下如何在linux服务器中利用它们构建持续集成环境... 一.准备工作 ...

随机推荐

  1. python初识(2)

    1.关于编码转换的方式. 比如,讲utf-8的编码转换为unicode方式如下 #-*- coding:utf-8 -*- i="德玛西亚" i_unicode=i_decode( ...

  2. SharePoint Server 2010 & WorkFlow related Limits

    Today, I have come across different workflow related limits for SharePoint Server 2010. Limit Maximu ...

  3. Oracle SQL Tips

    左连接的同时只输出关联表的一条记录 WITH X AS (SELECT 1 ID FROM DUAL UNION SELECT 2 FROM DUAL UNION SELECT 3 FROM DUAL ...

  4. 桥牌笔记:Skill 4 Series A–Deal 5

    南主打5C. 此牌的难点在于:如果黑桃4-2分布时,有没有打成的希望?看来黑桃.红桃.方块各1个失张无法避免? 但希望还是有的,那就是东家拿2张黑桃,并且有3张将牌. 这时庄家可以清2轮将牌,拔2轮黑 ...

  5. arc下内存泄漏的解决小技巧

    一定要注意,我们运行app时,一定要关心内存的使用,尽量不要超过20M,即使有很多图片要显示也绝对不能超过30M.所以运行自己开发的app时多关心内存的使用是个很好的习惯. 对于性能,内存的优化,这个 ...

  6. 二叉查找树(binary search tree)详解

    二叉查找树(Binary Search Tree),也称二叉排序树(binary sorted tree),是指一棵空树或者具有下列性质的二叉树: 若任意节点的左子树不空,则左子树上所有结点的值均小于 ...

  7. HashMap,HashTable,TreeMap区别和用法

    开始学HashTable,HashMap和TreeMap的时候比较晕,觉得作用差不多,但是到实际运用的时候又发现有许多差别的.需要大家注意,在实际开发中以需求而定. java为数据结构中的映射定义了一 ...

  8. Objective-c 基础框架(初学者-总结)

    一个框架其实就是一个软件包,它包含了多个类.Mac 操作系统提供了几十个框架,主要帮助开发者快速的在Mac 系统上开发应用程序.其中包括一些基础框架,就是为所有程序开发提供基础的框架,其中几个常用的类 ...

  9. 朝花夕拾-android 自定义application 管理activity的生命周期

    为了安全退出多个已创建的activity? 可以自定义application:myapplication. 增加一个list成员保存,一些关键的已创建的activity实例: private List ...

  10. 5+ App开发入门指南

    HTML5 Plus应用概述 HTML5 Plus移动App,简称5+App,是一种基于HTML.JS.CSS编写的运行于手机端的App,这种App可以通过扩展的JS API任意调用手机的原生能力,实 ...