在局域网内软件版本控制,gitblit(windows7)+git(麒麟linux)+Qt

因工作需要,将在局域网内部实现软件版本控制,管理诸多软件源代码。
综合考虑,决定将版本控制服务器gitblit搭建在windows7平台下,然后在各个客户机(麒麟linux系统)上使用Qt+git的方式,提交源代码。
大致流程如下:

  1. 在windows7上搭建java环境
  2. 在windows7上部署gitblit
  3. 将gitblit添加至计算机的启动服务中,实现开机自动启动
  4. 在linux系统中,安装部署git
  5. 在Qt中使用git
    gitblit及git的方法)

一、简单介绍gitblit和git的关系

(一)为什么要软件版本控制

什么是代码托管?或者说为什么要代码托管,可以假设几个场景。

  1. 程序的代码始终处于一个更新迭代的过程中,但是这个更新迭代不一定是完美的,所以有时候需要将代码返回到曾经的一个版本,即回滚。
  2. 同一段初始的代码,可能由此衍生出众多的衍生版本,版本众多,需要梳理清楚。
  3. 同一个软件,可能需要群策群力,大家共同来完善他,每个人都可以在这段软件中贡献自己的智慧。
    在以上场景中,都需要用到一个代码版本控制软件。

(二)怎么实现软件版本控制

软件版本控制,需要有一个远端代码仓库,即服务器端,以及本地代码仓库,客户端。
在互联网上的远端代码仓库,最知名的,当然是github,除此之外,在国内常用的,还有码云等等,在这些平台上,能实现代码托管。
而最有名的本地代码版本控制系统,当然是git。
还是情景假设,如下步骤

  1. 当你写完一段代码,你首先要将这段代码,保存到本地仓库,这个过程就是commit。
  2. 保存到本地仓库后,你觉得这段代码值得与大家分享了,或者放在本地不踏实,怕丢,就需要上传到远端仓库,上传的过程,就是push。
  3. 过了很久,你想看看远端仓库,这个代码的最新状态,是否有别人提交了新的修改了,你首先需要做的,就是把远端最新的版本下载到本地,就是fetch。
  4. 你看了看最新的代码,感觉好像颇有参考价值,决定将其和自己本地的代码融合到一块,就是merge。
  5. 有时候你对别人的代码比较自信,觉得没必要分两步走,也耐不住这个性子,想要下载了代码之后,直接合并,一步到位,这个过程就是pull。
  6. 过了一阵子,你发觉这个版本不想要了,想回退到某个版本,于是,你首先得查看,你提交了哪些版本,即git log。找到了你想要的那个版本,于是git reset,回退。
    理解了这个过程,就能大概知道了版本控制的作用了。

二、在32位windows7部署gitblit

(一)部署java环境

gitblit的运行依赖于java环境,因此首先需要部署java环境。
我用来假设版本控制服务器的操作系统是32位的windows7,于是我使用的也是相应的jdk版本。
我使用的是免安装版本的,需要自行将java写入操作系统的环境变量中。

  1. “计算机” -> “属性” -> “高级系统设置” -> “环境变量” 中的“系统变量”。
  2. 添加JAVA_HOME,指向你的java文件夹的目录。比如C:\Program Files\Java\jdk1.8.0
  3. 添加CLASSPATH,这么写.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
  4. 在原来的一项,path中,添加;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
    添加完成后,测试一下,打开电脑的cmd命令行,输入java -version,如果显示了你的java版本号,则说明环境变量添加成功了。

(二)配置gitblit

gitblit的部署,同样是免安装版的,将其放在某个你觉得稳妥的位置。

  1. 找一个你觉得稳妥的位置,新建一个文件夹,命名成你喜欢的名字,如“gitblitRep”,后面作为软件仓库使用。
  2. 打开文件夹下的“data”文件夹,找到“defaults.properties”,修改其中内容。
  3. 修改“git.repositoriesFolder = F:\gitblitRep”后面那是路径,是你自己新建的文件夹,即软件仓库。
  4. 修改一个绑定的ip,你在局域网中搭建服务器,当然不是为了自己本地使用,因此你需要修改“server.httpBindInterface = 127.0.0.1”为“server.httpBindInterface = XX.XX.XX.XX”,你的某个网卡的IP,多网卡的话,更需要指定那块网卡的IP。
  5. 你当然还可以修改更多东西,比如“server.httpPort”或者“server.httpsPort”,这是别人网页访问gitblit时输入的地址后面带的端口号。都有默认值,可以不修改。http的默认值为8442。

到此,配置修改完毕,运行就可以使用了。双击文件根目录下的“gitblit.cmd”,出现一个命令框,别关,命令框关了就停止运行了。在浏览器中输入“XX.XX.XX.XX:8442”,就能访问版本控制网页了。

(三)将gitblit注册为计算机的服务项自启动

在文件夹的根目录下,有一个“installService.cmd”,右键“编辑”,需要根据你的系统的具体情况修改一些参数。

@REM arch = x86, amd64, or ia32
SET ARCH=x86                 #如果是32位操作系统,则填写x86,如果是64位操作系统,则填写amd64
SET CD=F:\gitblit-1.9.1      #根据你的gitblit的实际位置填写

**注意!**运行这个cmd文件,不能直接双击运行,而是要在管理员模式下启动cmd,然后切换到这个文件目录下,运行该cmd文件。比如在cmd命令行中,依次输入,

f:
cd gitblit-1.9.1
start installService.cmd

或许你可以直接双击运行“installService.cmd”,可以先试试,看看计算机的“服务”中,有没有新增一条“gitbilit”,如果有,则达到目的了。
至此,开机就能自启动gitblit了。
另外,gitblit默认的用户名是admin,密码为admin。

三、在麒麟linux系统安装git

这个其实操作没什么难点,繁琐的是如果你像我这样离线安装,就需要自行解决一些依赖问题,这就有些棘手了。
git依赖于perl和git-man,因此,需要先安装这两个库,才能正常安装git。
另外,麒麟linux使用的是deb安装包,与ubuntu的deb貌似通用,我安装的几个deb包,都是通过ubuntu下载,然后安装的。按照如下顺序安装deb包吧(笔者已经下载整理好了,文末将提供下载链接)

sudo dpkg -i liberror-perl_0.17-1.2_all.deb
sudo dpkg -i git-man_2.7.4-0ubuntu1.10_all.deb
sudo dpkg -i git_2.7.4-0ubuntu1.10_arm64.deb

如此安装的git的默认目录为/usr/bin/git。记下这个目录,如果你的电脑不是这个目录,可以用这条linux命令找一下他在哪

sudo find / -name git

一般就是包含usr和bin的一条路径。

四、在Qt使用git

为了方便在Qt使用git,可以直接在Qt进行提交,需要将git使用ssh的传输方式,ssh是加密传输的方式,需要在本机电脑生成公钥。在linux终端中,依次输入以下命令,注意看我添加的注释。

(一)使用ssh的配置

#随便取一个你喜欢的用户名,比如superman
git config --global user.name "username"       

#随便取一个你喜欢的邮箱,不需要真实存在,比如[email protected],记录下来
git config --global user.email "useremail"  

#使用刚刚你输入的邮箱名,回车后,一路回车,不用输入任何东西。
ssh-keygen -t rsa -C "useremail"

到此,就生成你的公钥了,需要将你的公钥填写到gitblit网站中。首先找到你的公钥在哪。

#默认的目录
cd ~/.ssh

#你可以看到有三个文件
ls

#打开其中的id_rsa.pub,将其中的内容复制出来(可以直接用鼠标选中,右键复制)
vim id_rsa.pub

下面将公钥写入gitblit

  1. 打开浏览器,输入访问地址"XX.XX.XX.XX:8442"。
  2. 输入用户名admin,密码admin。
  3. 在右上角头像位置,点击,出现下拉框,选中“用户中心”。
  4. 页面中点击“SSH Keys”,出现一个添加ssh公钥的输入框,粘贴进去,然后添加即可。

(二)创建版本库

1、gitblit创建版本库

  1. 打开浏览器,输入访问地址"XX.XX.XX.XX:8442"。
  2. 输入用户名admin,密码admin。
  3. 在右上角头像位置,点击,出现下拉框,选中“创建版本库”。
  4. 在出现的页面中,输入一个版本库的名字,名字自取,点击“创建”
  5. 在“概况”中,看到“版本库地址”,复制其中的ssh开头的地址。记下这个地址,是后面在本地提交软件代码时,输入的远端仓库的地址。

2、在本地创建仓库

我是在现有的代码中,创建一个代码仓库的,并且想要实现在Qt中直接提交代码的功能。

  1. 打开Qt,打开想要版本控制的软件代码。
  2. 在Qt的上边沿菜单栏中,选择“工具” -> “选项” -> “版本控制” -> “Git”,其中有一栏“附加在系统PATH之前”,在后输入git的目录,比如/usr/bin/git。然后“OK”,“APPLY”。
  3. 还是Qt的菜单栏中,“工具” -> “Git” -> “创建仓库”,选中你的代码所在的文件夹,确定,这时候,回在这个文件夹下,生成一个“.git”的文件夹,应该是隐藏的。
  4. 在linux的终端打开到这个文件夹所在的目录,然后输入如下命令git init,初始化项目。
  5. git remote add origin "刚刚复制的ssh的地址"
  6. git add .,将代码提交到缓存区。
  7. git commit -m '随便写点什么,引号内就是描数内容,类似备注'
  8. git push -u origin master,上传到远端代码仓库。
  9. git pull --rebase origin master,从远端仓库,下拉至本地。
  10. git config --global push.default simple

至此,第一次提交和下拉,就完成了,后续就可以再Qt中,直接使用commit,pull和push等功能了。
另外,再Qt中使用这些功能时,还会提示一些信息,这只是提示信息,根据信息,做好选择,然后在终端输入相应的命令即可。

五、结语及下载链接

至此,整个过程就介绍完了,至于git的具体使用方法,日后再行介绍。
最后是传送门,git和gitblit及他们的依赖库的下载链接。
git2.7.4及相关依赖库(麒麟linux可用)
gitblit-1.9.1及32位jdk

猜你喜欢

转载自blog.csdn.net/baidu_31788709/article/details/115034270