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. idoc 和 bapi 和 rfc 之间的区别

        se37 写出来的叫function,其中可以远程调用的叫rfc,remote-enabled function,abap语法和输入输出参数就会有一些限制.bapi是sap做好的实现特定业务操 ...

  2. Error message when you try to modify or to delete an alternate access mapping in Windows SharePoint Services 3.0: "An update conflict has occurred, and you must re-try this action"

    Article ID: 939308 - View products that this article applies to. Expand all | Collapse all Symptoms ...

  3. 基本完成了一个SEGY扫描程序

    利用Seismic.NET编写了一个SEG-Y文件的扫描程序,可以自动判断道头字中主测线号.横测线号.X坐标和Y坐标的位置,自动快速扫描地震数据体中的拐点坐标.10GB多的数据体几十秒全部扫描完成! ...

  4. 关于android4.3 Intel X86 Atom System Image的下载

    今天建立android4.3模拟器的时候发现没有android4.3 Intel X86 Atom System Image可选,打开android SDK Manager 于是希望重现选择下载安装, ...

  5. Android源码分析之AsyncTask

    AsyncTask相信从事Android开发的同学都不陌生,基本都应该用到了,和以前一样我们还是先来看看此类的summary.AsyncTask 可以确保更合理.容易的使用UI线程.这个类是设计用来执 ...

  6. OC的项目网址(自己编写的项目)

    因为便于方便快速打开自己曾经写过的项目,所以就把链接保存在博客里了.一点击就能找到. <附注学习github排版:https://github.com/yangxuanxc/guide?file ...

  7. 透彻分析反射的基础_Class类

    一.反射的基石--->Class类 1. Java类用于描述一类事物的特性,该类事物有什么属性,没有什么属性,值域这个属性的值是什么,则是由这个类的实例对象来确定的,不同的实例对象有不同的属性值 ...

  8. 第k大的数,前k大的数

    1.排序后去出前k个,o(n*log(n))    如果k<log(n),可以考虑直接选择排序,因为只需要执行找到第k个就可以结束 o(n*k) 2.o(nlog(k))快排把数分为了两个部分, ...

  9. informatica 常见问题及解决方案

    本文对于informatica使用过程中产生的问题及解决方案做总结,持续更新中... 1.partitioning option license required to run sessions wi ...

  10. Effective Java 17 Design and document for inheritance or else prohibit it

    Principles The class must document its self-use of overridable methods. A class may have to provide ...