Alliot's blog

Git服务器的搭建与配置

  远程仓库诸如GitHub之类的其实与本地搭建的Git服务器没什么太大的区别,在一些对源代码保护比较看重的公司里,一般会选择自建Git服务器作为公司内网的私有仓库使用,这里记录的是Linux下的Git服务器搭建。

Git服务器配置

第一步 安装git

CentOS执行:

1
sudo yum install -y git

Ubuntu执行:

1
sudo apt-get intall -y git

第二步 权限配置

1
sudo adduser git

通过编辑/etc/passwd文件禁用git用户使用shell:
找到

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

修改为:

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

之后给需要权限的用户分配一个ssh公钥,加入/home/git/.ssh/authorized_keys中。

初始化裸仓库

进入需要放置的仓库的路径(如/home/git下)执行:

1
sudo git init --bare test.git

这里是在此目录下初始化一个名为test.git的仓库。(所谓裸仓库是该仓库不包含工作区,也就是说我们不能在这个目录下执行一般我们使用的命令。)参见Git 本地仓库和裸仓库 @TaoBeier
然后更改该目录的所有者与所处组为git:

1
sudo chown -R git:git test.git

至此,Git服务器端已经配置完成,下面说说本地的使用:

本地使用

与GitHub等远程仓库基本一致。

项目初始化

假设Git服务器解析到git.iots.vip域名,则在项目目录下执行:

1
2
3
git init
git add -A *
git commit -m 'first commit'

添加远程仓库:

1
git remote add origin git@git.iots.vip:/home/git/test.git

提交至远程仓库

执行

1
git push -u origin master

即可提交至远程仓库。

报错提示

  • 报错”unpack failed: unpack-objects abnormal exit”,这是因为远程仓库的目录权限问题,服务器端执行:

    1
    sudo chown -R git:git [仓库路径]
  • 本地仓库git add报错”fatal: Not a git repository (or any of the parent directories): .git” 项目未初始化导致。
    执行:

    1
    git init

待补充。

本文标题:Git服务器的搭建与配置

文章作者:Alliot

发布时间:2018年03月07日 - 14:03

最后更新:2018年04月06日 - 00:04

原始链接:https://www.iots.vip/post/build-git-server.html

许可协议: 署名-非商业性使用-相同方式共享 4.0 国际 转载请保留原文链接及作者。

如果此文为您解决燃眉之急或是带来些许明朗,不妨打赏Alliot一杯香茗或是一杯咖啡