私人服务器
it项目开发往往都是团队来完成的各有分工,那么在生产的过程中为了更好的将每个人完成的地方完美的搭配起来,公司大多会采用比较合适的团队协作工具,早起svn的使用很普遍,近年出现了github社区之后很多公司转而使用git仓库进行高效的代码协作以及版本控制。
也就是说当一个程序员找工作的时候经常在招聘需求中会有一项叫做熟练使用svn或git进行团队合作,那么在这里有些人会产生一个误解,就是认为git和github是一个东西。
今天我们就在文章中来解释一下git与github的不同之处。
那么首先我们来了解一下github
可以访问https://github.com
你会看到如下界面
点击sign in之后可以登陆你自己的github帐号(或自己注册一下)来进入github管理界面,
此界面就是登陆之后的界面,由于作者有自己的代码仓库以及团队仓库,所有右侧两个列表框就
分别是团队协作仓库(右上)以及个人代码仓库(右下)
简单介绍一下个人仓库与团队仓库的区别,
个人的代码仓库是专门供个人使用来提交保留代码的,使用者就是帐号持有人,那么团队仓库是可以给仓库添加团队
在团队的所有成员可以由仓库持有人分配权限,大家都可以对同一个项目进行拉取以及更改,这样带来的好处就是同一个项目可以由多人进行协作式的开发,并且每个人对项目的更改都可以在操作记录中进行查看,仓库还具有历史记录的回滚功能可以在出现重大更新错误的时候退回到上一个版本,这样我们在开发项目的时候就可以通过这样的一个机制来实现多人合作以及问责(当然问责是次要的),也可以在团队开发中来监控每个人的工作量以及工作效率
这里是github团队仓库的使用部分截图
那么实际上github已经满足于我们对代码的团队合作以及版本控制的需求
那什么是git,他和github有什么不同呢,
为什么要用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的操作实际上需要介绍的也很多
这篇文章就不多做介绍了,
关于多个分支同时开发以及不同分支的相互合并
还有合并多人提交产生冲突等情况应该怎么解决
在今后的文章中,如果我有时间并且没忘记要介绍的话会在后续更新的~~~
这篇文章的介绍就到这里,希望对开发中选择协作工具而痛疼的你会有帮助
相关阅读
在git push时,(HTTP)按道理是要输入密码的,我就好奇为什么一直不要输入密码了。原来git自己有凭证缓存机制,将密码和账户缓存在某个地
git clone远程操作的第一步,通常是从远程主机克隆一个版本库,这时就要用到git clone命令。$ git clone <版本库的网址>比如,克隆jQue
使用Git来管理我们的项目非常的方便,然而Git默认的文档比较功能看起来不够直观,所以我们通过配置文件把比较功能强大的“beyond com
使用git merge --squash,让commit变得优雅
阅读本文需要3分钟 情景模拟 我们有三个分支,master,develop以及feature特性分支,假定我们开发时使用的是feature分支,我们来这里查看
我们要把每个项目变成独立的git仓库,并且保留commit记录。 根据1 项目原始文件: MyHugeRepo/ .git/ DIR_A/ DIR_B/ DIR_C/