当前位置:网站首页 > 微服务架构 > 正文

git服务搭建(搭建git服务器web界面)



近期公司为了方便管理项目,要搭建一个git服务器集中管理项目数据。通过请教同事,并在虚拟机上多次尝试终于搭建成功,特意将搭建过程分享给跟我一样的小白。

环境:

服务器端: git-server 192.168.92.128

客户端: git-client 192.168.92.129

服务器端:

    1、首先安装git 与 openssh (openssh 安装过的,这步可以只安装git就行)

    sinovo@git-server:~$ sudo apt-get install git-core openssh-server openssh-client

    ubuntu 16.04 下搭建git服务器(gitosis+git-daemon+gitweb)_git

        

    2、进入root权限,打开/etc/sudoers,将sinovo用户加入到sudo权限中,他是gitosis的管理员

    sinovo@git-server:~$ sudo vim /etc/sudoers

    ubuntu 16.04 下搭建git服务器(gitosis+git-daemon+gitweb)_gitweb_02

3、生成一个秘钥ssh-rsa-key

sinovo@git-server:~$ ssh-keygen -t rsa

        一路回车即可,不要输任何内容

        ubuntu 16.04 下搭建git服务器(gitosis+git-daemon+gitweb)_版本控制_03 ls

        查看生成的key

        结尾的 sinovo@git-server 是sinovo 在gitosis中的管理员身份

        sinovo@git-server:~$ ls .ssh

        sinovo@git-server:~$ cat .ssh/id_rsa.pub

        ubuntu 16.04 下搭建git服务器(gitosis+git-daemon+gitweb)_git_04

        注意: .ssh/id_rsa_gitosis.pub文件内容结尾的签名:”sinovo@git-server”,这将是sinovo在gitosis中的管理员身份

        4、下载并安装gitosis工具

        以sinovo身份执行以下操作

        sinovo@git-server:~$ sudo apt-get install python python-setuptools

        ubuntu 16.04 下搭建git服务器(gitosis+git-daemon+gitweb)_gitosis _05

        sinovo@git-server:~$ git clone https://github.com/tv42/gitosis.git

        ubuntu 16.04 下搭建git服务器(gitosis+git-daemon+gitweb)_gitweb_06

        sinovo@git-server:~$ cd gitosis/

        sinovo@git-server:~/gitosis$ sudo python setup.py install

        ubuntu 16.04 下搭建git服务器(gitosis+git-daemon+gitweb)_gitweb_07

        5、创建git用户,用git用户身份访问其管理的所有git工程

        sinovo@git-server:~$ sudo useradd -m git

        sinovo@git-server:~$ sudo passwd git

        ubuntu 16.04 下搭建git服务器(gitosis+git-daemon+gitweb)_gitweb_08

        gitosis默认所有git工程都放在/home/git/repositories/下。为防止gitosis崩溃的影响,将/home/gitpot作为所有git工程的根目录,今后删除git用户时不会波及这些工程。

        sinovo@git-server:~$ sudo mkdir /home/gitpot
        sinovo@git-server:~$ sudo chown git.git -R /home/gitpot/
        sinovo@git-server:~$ ls /home/ -l

        ubuntu 16.04 下搭建git服务器(gitosis+git-daemon+gitweb)_gitosis _09

       然后以git身份,建立/home/git/repositories为指向/home/gitpot的超级链接。

        sinovo@git-server:~$ su - git
        git@git-server:~$ git config --global user.name "Gitadmin"
        git@git-server:~$ git config --global user.email
        git@git-server:~$ ls -al
        git@git-server:~$ ln -s /home/gitpot https://blog.51cto.com//repositories
        git@git-server:~$ ls -al

      ubuntu 16.04 下搭建git服务器(gitosis+git-daemon+gitweb)_gitweb_10

     

       6、创建gitosis管理工程

        以sinovo 身份执行以下命令:

        ubuntu 16.04 下搭建git服务器(gitosis+git-daemon+gitweb)_gitweb_11

        如果是centos6.6的话 用这个路径 sudo -H -u git /usr/bin/gitosis-init < https://blog.51cto.com//

        以上如果没有报错就是OK了

       下载gitosis-admin.git工程,验证sinovo作为管理员,可以访问这个“管理所有git工程”的git工程

      ubuntu 16.04 下搭建git服务器(gitosis+git-daemon+gitweb)_git_12

        如果以上创建完成后没有问题,可以通过keydir文件与 gitosis.conf查看用户名及秘钥文件

       ubuntu 16.04 下搭建git服务器(gitosis+git-daemon+gitweb)_版本控制_13

客户端

        7、重复第 1 步和第 3 步,将生成的文件上传至服务器共享文件夹 keys 下



服务器

        8、添加客户端git-client上的用户pdf,并新增一个test-git.git工程。

         首先将keys目录下的秘钥拷贝到gitosis-admin下,然后查看客户端的秘钥

        ubuntu 16.04 下搭建git服务器(gitosis+git-daemon+gitweb)_gitweb_14

        将上传的秘钥拷贝到 keydir文件夹下并创新命名为 key文件结尾的 pdf@git-client,然后将上传的秘钥删除,只保留keydir下的

  ubuntu 16.04 下搭建git服务器(gitosis+git-daemon+gitweb)_gitweb_15

        编辑 gitosis.conf 将 pdf@git-client 添加进入gitosis管理组或新建一个测试组

        sinovo@git-server:~/gitosis-admin$ sudo vim gitosis.conf

        ubuntu 16.04 下搭建git服务器(gitosis+git-daemon+gitweb)_版本控制_16   

        查看是否有更改

        sinovo@git-server:~/gitosis-admin$ git status

        我们可以看到 红色部分的文件是我们做过更改动作的

        ubuntu 16.04 下搭建git服务器(gitosis+git-daemon+gitweb)_gitosis _17

        提交更改

        sinovo@git-server:~/gitosis-admin$ git add gitosis.conf

        sinovo@git-server:~/gitosis-admin$ git add keydir/

        sinovo@git-server:~/gitosis-admin$ git commit -m "Add test-git project."

        ubuntu 16.04 下搭建git服务器(gitosis+git-daemon+gitweb)_版本控制_18

        sinovo将本地的修改提交到远端:

      sinovo@git-server:~/gitosis-admin$ git remote -v

        sinovo@git-server:~/gitosis-admin$ git branch -a

        sinovo@git-server:~/gitosis-admin$ git log

        sinovo@git-server:~/gitosis-admin$ git push origin master

        ubuntu 16.04 下搭建git服务器(gitosis+git-daemon+gitweb)_git_19

      以git身份创建一个空的test-git.git仓库

        ubuntu 16.04 下搭建git服务器(gitosis+git-daemon+gitweb)_gitweb_20

        /home/gitpot目录下保存的都将是原始仓库(—bare)


客户端

        验证其他新增用户的访问权限

        pdf@git-client:~$ git clone git@192.168.92.128:test-git.git

        ubuntu 16.04 下搭建git服务器(gitosis+git-daemon+gitweb)_gitweb_21

最后将新用户合并至远端,合并没有问题则验证通过

       pdf@git-client:~$ cd test-git/

       pdf@git-client:~/test-git$ echo "Hello World! It's pdf comment." >hello.txt

       pdf@git-client:~/test-git$ git add hello.txt

       pdf@git-client:~/test-git$ git commit -m "Add hello.txt."

       pdf@git-client:~/test-git$ git status

       pdf@git-client:~/test-git$ git log

       pdf@git-client:~/test-git$ git branch

       pdf@git-client:~/test-git$ git remote -v

       pdf@git-client:~/test-git$ git push origin master

ubuntu 16.04 下搭建git服务器(gitosis+git-daemon+gitweb)_版本控制_22

       下面以gadmin身份验证修改和创建新分支的权限

        sinovo@git-server:~$ git clone git@192.168.92.128:test-git.git

        ubuntu 16.04 下搭建git服务器(gitosis+git-daemon+gitweb)_版本控制_23

sinovo@git-server:~/test-git$ echo "Welcome! I'm gadmin." >> hello.txt

sinovo@git-server:~/test-git$ cat hello.txt

sinovo@git-server:~/test-git$ git add hello.txt

sinovo@git-server:~/test-git$ git commit -m "Add a comment into hello.txt."

sinovo@git-server:~/test-git$ git log   
sinovo@git-server:~/test-git$ git remote -v

sinovo@git-server:~/test-git$ git branch -a

sinovo@git-server:~/test-git$ git push origin master

        ubuntu 16.04 下搭建git服务器(gitosis+git-daemon+gitweb)_版本控制_24

       sinovo@git-server:~/test-git$ git checkout -b test1

      sinovo@git-server:~/test-git$ echo "You can checkout new branch and merge into remote." >README

      sinovo@git-server:~/test-git$ git add README

      sinovo@git-server:~/test-git$ git commit -m "Add README."

      sinovo@git-server:~/test-git$ git branch -a

       sinovo@git-server:~/test-git$ git log

       sinovo@git-server:~/test-git$ git push origin test1:refs/heads/test1

       ubuntu 16.04 下搭建git服务器(gitosis+git-daemon+gitweb)_gitosis _25


服务器端

    安装并配置git-daemon

    git-daemon可以提供给局域网内任何人只读访问的权限。/home/git/repositoies/下所有git工程可任意下载。
    Ubuntu16.04不再使用git-daemon-run,启用的是git-daemon-sysvinit。

    安装git-daemon-sysvinit

    sinovo@git-server:~/test-git$ sudo apt-get install git-daemon-sysvini

    ubuntu 16.04 下搭建git服务器(gitosis+git-daemon+gitweb)_gitweb_26

    修改git-daemon配置,将监听的根目录指向/home/gitpot。

    sinovo@git-server:~/test-git$ sudo vim /etc/default/git-daemon

    ubuntu 16.04 下搭建git服务器(gitosis+git-daemon+gitweb)_git_27

    重启git-daemon服务,查看其监听的端口(9418)状态,证明服务已经正常运行

    sinovo@git-server:~$ sudo service git-daemon restart

    sinovo@git-server:~$ sudo service git-daemon status

    ubuntu 16.04 下搭建git服务器(gitosis+git-daemon+gitweb)_git_28

    sinovo@git-server:~$ sudo lsof -i:9418

    ubuntu 16.04 下搭建git服务器(gitosis+git-daemon+gitweb)_gitweb_29

    在客户端以未注册的用户身份(root)下载git工程。使用的是git访问

    ubuntu 16.04 下搭建git服务器(gitosis+git-daemon+gitweb)_版本控制_30


服务器端

    安装配置gitweb

    安装apache

    sinovo@git-server:~$ sudo apt-get install apache2

    打开浏览器输入192.168.92.128,出现以下页面表示安装成功

    ubuntu 16.04 下搭建git服务器(gitosis+git-daemon+gitweb)_gitweb_31

安装gitweb

    sinovo@git-server:~$ sudo apt-get install libcgi-pm-perl gitweb

     建立超链接,使访问192.168.92.128/gitweb ,由gitweb.cgi响应

     sinovo@git-server:~$ sudo ln -s /usr/share/gitweb /var/www/html/gitweb

    ubuntu 16.04 下搭建git服务器(gitosis+git-daemon+gitweb)_gitosis _32

    将gitweb访问的git工程根目录指向/home/gitpot

    sinovo@git-server:~$ sudo vim /etc/gitweb.conf

    ubuntu 16.04 下搭建git服务器(gitosis+git-daemon+gitweb)_git_33

    修改apache的80端口网页配置,使访问192.168.92.128/gitweb 并启用gitweb.cgi

    sinovo@git-server:~$ sudo vim /etc/apache2/sites-available/000-default.conf

    进入编辑页面后在最后面追加以下内容,保存退出。然后重启apache就OK了

ubuntu 16.04 下搭建git服务器(gitosis+git-daemon+gitweb)_git_34

    sinovo@git-server:~$ sudo a2enmod cgid

    sinovo@git-server:~$ sudo /etc/init.d/apache2 restart

    ubuntu 16.04 下搭建git服务器(gitosis+git-daemon+gitweb)_git_35

  

    最后验证网页是否有效

    浏览器输入:192.168. 92.128/gitweb

    ubuntu 16.04 下搭建git服务器(gitosis+git-daemon+gitweb)_git_36

到此这篇git服务搭建(搭建git服务器web界面)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 微服务配置中心查看资源使用(微服务配置中心选择)2025-05-15 21:36:04
  • git服务器配置要求高吗(git服务器配置要求高吗知乎)2025-05-15 21:36:04
  • 微信hook机器人(微信机器人app)2025-05-15 21:36:04
  • 手机输入的字怎么变颜色(微信上打字怎么变颜色)2025-05-15 21:36:04
  • samba共享服务下载(samba共享文件夹权限)2025-05-15 21:36:04
  • 访问samba共享文件拒绝访问(samba服务器windows无法访问共享文件夹)2025-05-15 21:36:04
  • 乔拓云网微信小程序制作下载(乔拓云网微信小程序制作下载什么软件)2025-05-15 21:36:04
  • 服务器部署架构图片(服务器部署软件教程)2025-05-15 21:36:04
  • 如何架设个人服务器(如何架设自己的服务器)2025-05-15 21:36:04
  • 个人服务器 价格(个人服务器用处)2025-05-15 21:36:04
  • 全屏图片