A detailed introduction to building a private git server and the differences between git and github

It project development is often completed by teams with their own division of labor, so in the process of production, in order to better match the places completed by everyone, most companies will use more appropriate team collaboration tools, and use svn early. Very common, after the emergence of the github community in recent years, many companies have turned to git repositories for efficient code collaboration and version control.

That is to say, when a programmer is looking for a job, there is often an item in the recruitment requirement called skilled use of svn or git for teamwork, so some people here will have a misunderstanding that git and github are the same thing.

Today we will explain the difference between git and github in this article.

So first let's take a look at github

Available at https://github.com

You will see the following interface


After clicking sign in, you can log in to your own github account (or register yourself) to enter the github management interface.


This interface is the interface after logging in. Since the author has his own code repository and team repository, all the two list boxes on the right are

They are the team collaboration repository (upper right) and the personal code repository (lower right)

Briefly introduce the difference between personal warehouse and team warehouse,

The personal code repository is specially used for personal use to submit reserved codes. The user is the account holder, then the team repository can add teams to the repository.

All members of the team can be assigned permissions by the warehouse holder, and everyone can pull and change the same project. The advantage of this is that the same project can be developed collaboratively by multiple people, and everyone can The changes of the project can be viewed in the operation record, and the warehouse also has the rollback function of the history record, which can be rolled back to the previous version when a major update error occurs, so that we can use such a mechanism when developing the project. Achieve multi-person cooperation and accountability (of course accountability is secondary), and can also monitor everyone's workload and efficiency in team development

Here is a screenshot of the usage part of the github team repository


So in fact github has satisfied our needs for code teamwork and version control

So what is git, and how is it different from github?

Why use git.

其实github是一个开源的代码仓库也就是说你的代码仓库实际上是公开的,就算你没有github帐号也可以访问别人的代码仓库来查看当前的代码,并且还可以下载来进行自己使用。还有一点github的数据源是国外持有的,在进行项目的提交和同步时耗时也是比较长的。基于这两点,github不像svn一样有很好的隐私性以及局域网内部的快速传输功能,所以我们在做开源和需要其他开发者也进行贡献时使用github是非常合适的,但是如果我们的项目是比较私密的有可能也是封闭开发的只有局域网,那么这个时候github就没法起作用了。

所以这里我们提到了git

实际上git是一个与github操作流程以及机制完全一样的一套体系,可以把他理解成github的局域网版,我们可以通过在本地或者公司的服务器上搭建一套git仓库来实现使用我们自己的代码仓库来进行开发项目,操作流程也与github完全一样

那么搭建git环境怎么进行,我们去哪里下载下面的内容会慢慢道来

git环境已经有很多个本地版,并且功能以及通用性各有不同,有的版本的git是没有界面的操作起来很麻烦,需要很多步骤进行搭建,有的版本需要iis服务器对于跨平台带来了限制,这里正好要说明一点,git本身属于一种团队协作的工具,所以我们在开发中一定要弄清楚对程序员而言什么是最重要的,如果你在开发项目的过程中把大量的精力用在了团队协作工具的使用以及配置,还有就是把大量的时间花在了学习git指令怎么使用上,这意味着你在消耗宝贵的时间在做无用的事情,如果团队协作工具占用了一个团队大量的开发时间,那么这个工具并没有给团队提高效率而是在阻碍开发。

所以今天我来介绍一个非常好用操作及其简单的git服务器,配合载有git客户端工具的eclisp或者hbuilder等开发工具天衣无缝

这个工具叫做gitblit 这里是官网http://www.gitblit.com/


这是官网首页提供的几种版本,我们只需要选择对应的操作系统来下载对应的包就可以了

这里widows系统使用windows版本就可以

linux和Mac系统是共用一个版本的(这里不要误解,Linux,和Mac(Unix)并非同一个操作系统,是由于他们的系统指令以及文件结构大部分相同的原因)

那么今天我们主要来介绍一下如何在Mac和Linux上配置gitblit(windows版本的搭建在其他人的博客上已经有非常非常详细的介绍了)

首先下载linux版本的包到硬盘上

找到gitblit-1.8.0.tar.gz压缩包进行解压


这是文件结构

打开data文件夹之后会看到一个叫做defaults.properties的文件,这个就是gitblit的总配置文件

打开该文件,我们需要修改一些基本的参数

首先,找到git.repositoriesFolder = ${baseFolder}/git这个是配置当前git使用的文件位置,模式是这个如果需要更改请改成自己需要的git路径

然后,找到server.shutdownPort = 8081这个是shutdown操作执行的端口号 默认是8081但是8开头的端口号我们开发时经常会使用所以可以改成10081或者9081等如果执行时端口冲突可以自行修改

然后是 server.httpPort = 0这个默认是0 这里我把他改成10080

然后是server.httpBindInterface=默认是空值,需要填写当前的局域网ip地址,如果是在服务器上搭建就写服务器的外网地址

然后找到server.httpsBindInterface 并赋值localhost

这些基本配置完毕之后我们就可以启动gitblit来测试了

首先找到gitblit根目录下面的gitblit.sh文件打开(这里就没有window的cmd文件自动运行了)

复制如下代码java -jar gitblit.jar --baseFolder data(这个就是gitblit的启动命令)

然后打开mac活着linux的命令提示窗口

通过指令进入你的gitblit文件夹并输入刚才的启动指令(这里注意gitblit执行命令需要管理员权限所以在执行指令的前面需要加上sudo关键字)

也就是 输入 sudo java -jar gitblit.jar --baseFolder data

接下来会进入输入管理员密码提示

整个流程如图


当看见了gitblit的logo时说明服务器正在执行启动命令

与在控制台中查看tomcat启动日志一样观察启动过程中是否提示错误,如果有异常出现的都是java的异常信息

常见的异常多数是端口冲突异常(根据冲突的端口查询配置文件更改端口即可)或者是权限不足(使用sudo解决)

启动成功后是如下信息

那么这个服务启动成功后我们怎么使用呢

回忆之前我们设置了一个httpPort

这个就是浏览器访问gitblit的端口号

所以可以在浏览器中输入http://你的ip地址:你设置的httpPort

如我设置的是http://192.168.50.168:10080

浏览器输入后会出现如下界面


这个界面代表刚才的配置所有都已经完成并且gitblit仓库可以直接使用了,并且最重要的,他是中文版对吧

然后下一个问题来了,右上角提示帐号登陆,默认的帐号又是什么呢

在data文件夹中还有一个配置文件名为users.conf打开这个文件看一下吧


怎么样user=admin password=admin 

这个就是默认的管理员帐号和密码

登陆一下测试


上面是登陆成功后的界面,也就是我们可以通过admin帐号来进行新用户的注册,可以创建团队,可以对帐号进行维护,

那么创建团队和帐号的过程我就不详细说明了,这个需要大家自行补全知识

我已经创建了团队并且给团队添加了两个成员



下面我们来创建一个仓库看一下是不是可以进行代码的协作


注意版本库的地址

可以选择多种同步代码的方式


这里我们就拿http协议的url来举例子

我们使用hbuilder的git插件来测试一下代码的上传

随便找一个本地的项目


然后把他共享到本地git仓库


然后设置一下上传路径




然后先将代码提交到本地仓库


然后我们进行项目的提交


上传完毕之后


这就代表上传成功了

那么我们切换另外一个用户来down一下这个项目

选择从git中导入项目

并且使用test帐号


这次我们尝试修改项目并且再次提交

完毕之后可以在gitblit中查看并且可以看见当前提交的人是谁


这样我们就可以通过本地的gitblit进行项目的协作了

当然今天着重介绍的是如何搭建本地的git服务器,关于git的操作实际上需要介绍的也很多

这篇文章就不多做介绍了,

关于多个分支同时开发以及不同分支的相互合并

还有合并多人提交产生冲突等情况应该怎么解决

在今后的文章中,如果我有时间并且没忘记要介绍的话会在后续更新的~~~

这篇文章的介绍就到这里,希望对开发中选择协作工具而痛疼的你会有帮助

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325572625&siteId=291194637