本文将介绍如何在Linux系统上搭建Git服务器以及查看Git提交记录。

搭建Git服务器

  首先,我们需要一台Linux服务器,作为Git服务部署的机器,一般选用Ubuntu或者Debian,请确保拥有sudo权限并且联网。笔者以Mac电脑上的虚拟机为例,系统为Ubuntu 16.04。
  我们先安装Git,命令如下:

$ sudo apt-get install git

  然后,创建一个git用户,用来运行git服务:

$ sudo adduser git

  接着,创建证书登录。收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。注意,有可能在/home/git中没有.ssh文件夹,可以自行创建.ssh文件夹和authorized_keys文件,如果遇到权限问题,直接用sudo操作即可。笔者将自己Mac电脑的公钥放在虚拟机的Ubuntu系统中的
/home/git/.ssh/authorized_keys文件里。
  然后,我们创建一个示例的Git仓库(空仓库),假定是/srv/sample.git,在/srv目录下输入命令:

$ sudo git init --bare sample.git

并把然后,把owner改为git

$ sudo chown -R git:git sample.git

创建过程如下图:

  最后,我们禁止git用户登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:

git:x:1001:1001:,,,:/home/git:/bin/bash

改为:

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。
  以上为Git服务器搭建的过程,同时我们在Git服务器上创建了一个新的空仓库sample.git

Git服务器使用

  首先确保客户机(笔者自己的Mac电脑)能访问搭建Git服务器的Linux机器(本文中是虚拟机Ubuntu系统)。笔者的虚拟机IP为192.168.0.106,在客户机上(笔者自己的Mac电脑)利用下面的git clone命令下载sample.git项目。

$ git clone git@192.168.0.106:/srv/sample.git

  我们利用PyCharm进行两次提交,第一次提交README.md文件,文档内容为"Hello from Git Server!",第二次在此基础上新增test.txt文件,文档内容为"2020-05-18 10:25:00"。至于如何用PyCharm提交,可以参考文章:利用PyCharm操作Github:仓库新建、更新,代码回滚 。截图如下:


  这时候我们再进入虚拟机(Git服务器)中去查看/srv/sample.git,内容如下:

  可以用git log命令查看当前分支的提交记录,如下图:

可以看到,我们在客户机上提交了两次以及每次的Commit Message。切换到某次具体的提交,可以用git show命令查看提交的内容,如下图:

当然还有很多高级的操作,这里不再介绍。
  如果我们想要在网页中像Gitlab那样可视化地查看提交记录,可以借助git instaweb命令,该命令默认配置的WEB服务器软件为lighttpd,如果Git服务器上没有安装,可以使用下面的命令安装:

$ sudo apt-get install lighttpd

接着我们切换至/srv/sample.git,使用下面的命令启动git的WEB查看服务:

$ sudo git instaweb --httpd=lighttpd

在Firefox中输入网址:http://127.0.0.1:1234,即可见到页面如下:


  在这个网址中,我们可以像Gitlab一样方便地查看samplt.git的提交记录,虽然功能不如Gitlab强大。

总结

  如果团队很小,把每个人的公钥收集起来放到服务器的/home/git/.ssh/authorized_keys文件里就是可行的。如果团队有几百号人,就没法这么玩了,这时,可以用Gitosis来管理公钥。另外,如果想在离线环境下也使用Git来管理代码,上述方法也是可行的。

参考文献

  1. 搭建Git服务器:https://www.liaoxuefeng.com/wiki/896043488029600/899998870925664
  2. git instaweb命令:https://git-scm.com/docs/git-instaweb

如何搭建Git服务器相关推荐

  1. centos7 下搭建git服务器

    总的来说,搭建git和svn形式差不多 1.首先要在服务器安装git环境,创建用户密码和仓库等 2.然后个人主机(基本是window)安装git客户端 3.将个人主机客户端的秘钥写到git服务器的一个 ...

  2. 搭建Git服务器教程转载

    1. 在Windows下使用ssh+msysgit客户端搭建Git服务器 http://www.codeproject.com/Articles/296398/Step-by-Step-Setup-G ...

  3. git进入项目目录 windows_Windows下搭建Git服务器

    Windows平台下搭建Git服务器的图文详解及教程 Git没有客户端服务器端的概念,但是要共享Git仓库,就需要用到SSH协议(FTP , HTTPS , SFTP等协议也能实现Git共享,此文档不 ...

  4. 自建git服务器连接Pycharm系列二:在centos7上搭建git服务器

    在自己的Linux虚拟机上,搭建git服务器,用来保存代码. centos7本身自带git,需要先卸载,安装成较新的版本. 1.卸载系统自带版本 系统已经自带 [root@dscrapy01 ~]# ...

  5. CentOs上搭建git服务器

    CentOs上搭建git服务器 首先安装setuptools wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0 ...

  6. Windows下Git的安装和基本使用、搭建Git服务器

    1 Git的安装和基本使用 安装完成桌面有个Git Bash图标: 弹出Git Bash:用 git init 在目录中创建新的 Git 仓库:下面在G:/git2/test1目录创建: 创建完成会有 ...

  7. CentOS7搭建Git服务器

    CentOS7搭建Git服务器 文章目录 CentOS7搭建Git服务器 前言 搭建步骤 参考链接 前言 现有一台操作系统为CentOS 7的服务器,要将其作为代码库服务器使用,要求使用Git进行代码 ...

  8. Windows 使用 Gogs 搭建 Git 服务器

    随便说两句 之前有使用 Gitblit 在Windows搭建Git服务器,用的也挺好的,可能安装起来略麻烦一点.现在全用 Gogs 在windows搭建Git服务器,主要是因界面好看,管理更方便一些. ...

  9. centos 搭建git服务器

    首先服务器需安装git 参考链接:https://www.cnblogs.com/-mrl/p/11045998.html 搭建git服务器 1.新建git仓库主目录,可以选择创建在/data目录下. ...

  10. Windows平台使用Gitblit搭建Git服务器图文教程

    Git服务现在独树一帜,相比与SVN有更多的灵活性,最流行的开源项目托管网站Github上面,如果托管开源项目,那么就是免费使用的,但是闭源的项目就会收取昂贵的费用,如果你不缺米,那么不在本文讨论的范 ...

最新文章

  1. 阿尔法大蛋智能机器人功能_恭喜,全球首台智能洗车机器人“阿尔法”终于上线啦...
  2. 打游戏要存进度-备忘录模式
  3. Linux 系统应用编程——多线程经典问题(生产者-消费者)
  4. python的print输出_python中的print()输出
  5. C/C++语言里的near和far是什么意思?
  6. 11门满分、10门99分、47门超95分……他却说自己是“学zha”
  7. 视频APP软件开发功能架构
  8. 对比度 css_更好的颜色和对比度可访问性CSS技巧
  9. 瞬时视场、识别距离、mrtd
  10. 新浪微博、中关村、蘑菇街、微信、国美、苏宁等各大网站登录js解密例子!
  11. Python机器学习04——惩罚回归
  12. Spring基础----相关类
  13. ASM磁盘空间假装耗尽,ORA-15041: diskgroup space exhausted
  14. 工作时间如何安排:集中注意力的方法
  15. c语言零基础入门(经验总结)
  16. P3224 [HNOI2012]永无乡 FHQ-Treap 启发式合并
  17. “第五空间”智能安全大赛部分WP
  18. Displaytag 使用简介
  19. 将 top命令执行结果输出到文件
  20. 工程管理系统源码-专注项目数字化管理

热门文章

  1. java计算机毕业设计学习社区管理系统源码+数据库+系统+lw文档+部署
  2. java证书加解密过程
  3. 好用的系统检测工具与硬盘检测工具
  4. 数据库高级应用学习报告【T-sql】
  5. emoji表情符号有时不能正常显示的问题的解决方案
  6. 《工程电磁场》学习笔记1-静电场
  7. 小米M2 M2S刷机包电信版/AOSB/4.4.4/归属地/分屏/稳定版/截图
  8. Python基础系列N讲 | 1500字详解Anaconda安装教程(附安装包)
  9. 数据分析-PART4--数据分析方法
  10. 腾讯视频互动直播TUIPusherTUIPlayer集成体验