手把手教你用 Node 搭建一个 Git 服务器

作者 : 开心源码 本文共1072个字,预计阅读时间需要3分钟 发布时间: 2022-05-12 共217人阅读

本文用简短的的篇幅教你用 node 搭建一个 git 服务器。?

00 背景

现在 github 支持免费使用私有仓库,所以把代码提交到私有仓库是个不错的选择。?

但是有时候可能会有需求是要部署 git 服务器,或者者作为中转 git 服务器。?

01 如何部署

有两个现成的 npm 包可以选择:?

stackdot/NodeJS-Git-Server

gabrielcsapo/node-git-server

下面拿 node-git-server 做一个例子:?

(1)找个服务器,可以用阿里云或者者腾讯云服务器, 在服务器上安装 git, 安装 node, pm2。

(2)新建一个目录 git-server ,?

mkdir git-server

cd git-server?

npm init -y?

cnpm i node-git-server -S?

touch index.js

(3) index.js 的内容如下 ,

const Server = require(‘node-git-server’);

const path = require(‘path’);

const repos = new Server(path.resolve(__dirname, ‘git’), {

????autoCreate: true

});

const port = process.env.PORT || 8080;

repos.on(‘push’, (push) => {

????console.log(`push ${push.repo}/${push.commit} (${push.branch})`);

????push.accept();

});

repos.on(‘fetch’, (fetch) => {

????console.log(`fetch ${fetch.commit}`);

????fetch.accept();

});

repos.listen(port, () => {

????console.log(`node-git-server running at http://localhost:${port}`)

});

(4) 在根目录新建 git 目录,里面放你要建的项目仓库,当然这里可以像 github 一样做个可视化的界面

mkdir git?

cd git?

mkdir 项目名.git?

git init –bare

(5) 到根目录用 pm2 kill, pm2 start index.js 运行起来即可以了。?

(6) {ip}:{端口}/项目名.git 就是你的仓库了。可以 git clone?{ip}:{端口}/项目名.git 看看效果。?

更高级的用法可以看文档? gabrielcsapo/node-git-server。

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 手把手教你用 Node 搭建一个 Git 服务器

发表回复