详解Node.js利用node-git-server快速搭建git服务器


Posted in Javascript onSeptember 27, 2017

本文用到了node-git-server

1、检测本地git版本

该包的使用需要机器上本来就安装git,且git的版本大于等于2.7:

?─root@lt /home/workspace 
 ?─# git --version             
 git version 2.7.4

2、利用npm安装包

?─root@lt /home/workspace 
?─# npm install node-git-server
/home/workspace
└─┬ node-git-server@0.3.0 
 ├─┬ http-duplex@0.0.2 
 │ ├── duplex-pipe@0.0.2 
 │ └── inherits@1.0.2 
 └── through@2.3.8

npm WARN enoent ENOENT: no such file or directory, open '/home/workspace/package.json'
npm WARN workspace No description
npm WARN workspace No repository field.
npm WARN workspace No README data
npm WARN workspace No license field.

有警告可以先忽略~

3、编写example

cd ./node_modules/node-git-server/example/

编辑index.js

const Server = require('node-git-server');
const repos = new Server('/tmp/repos');
const port = process.env.PORT || 80;
 
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、运行

?─root@lt /home/workspace/node_modules/node-git-server/example 
 ?─# node index.js 
 node-git-server running at http://localhost:80

5、测试git服务器

由于我的git服务器是在aliyun上跑的,并且绑定了www.beautifulzzzz.com,所以我先在本地新建一个git仓库,并将其推送同步到云端,然后再clone下来来做测试:

详解Node.js利用node-git-server快速搭建git服务器

可见将本地git仓库同步到云端和普通的git服务器没有区别,简直太简单方便了!!!

详解Node.js利用node-git-server快速搭建git服务器

同样git clone也比较简单!

6、云端git仓库的位置

在index.js中我们指定git仓库存放在:const repos = new Server('/tmp/repos');目录下

登录远程服务器可以发现在/tmp/repos/目录下存在我们同步的git仓库:(其中beep.git是之前push的一个)

?─root@lt /tmp/repos 
 ?─# ls
 beautifulzzzz.git beep.git

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS实现一键回顶功能示例代码
Oct 28 Javascript
js修改原型的属性使用介绍
Jan 26 Javascript
JS函数定义方式的区别介绍
Mar 22 Javascript
模拟javascript中的sort排序(简单实例)
Aug 17 Javascript
vue router2.0二级路由的简单使用
Jul 05 Javascript
Angular实现点击按钮后在上方显示输入内容的方法
Dec 27 Javascript
基于js 各种排序方法和sort方法的区别(详解)
Jan 03 Javascript
AngularJS中的作用域实例分析
May 16 Javascript
JavaScript继承与多继承实例分析
May 26 Javascript
详解vue-cli3使用
Aug 14 Javascript
Vue 无限滚动加载指令实现方法
May 28 Javascript
如何利用JavaScript编写更好的条件语句详解
Aug 10 Javascript
微信小程序 循环及嵌套循环的使用总结
Sep 26 #Javascript
Node.js dgram模块实现UDP通信示例代码
Sep 26 #Javascript
深入理解ES6 Promise 扩展always方法
Sep 26 #Javascript
微信小程序开发之IOS和Android兼容的问题
Sep 26 #Javascript
Thinkphp5微信小程序获取用户信息接口的实例详解
Sep 26 #Javascript
微信小程序url与token设置详解
Sep 26 #Javascript
微信小程序之滚动视图容器的实现方法
Sep 26 #Javascript
You might like
怎样在UNIX系统下安装MySQL
2006/10/09 PHP
php strstr查找字符串中是否包含某些字符的查找函数
2010/06/03 PHP
php中jQuery插件autocomplate的简单使用笔记
2012/06/14 PHP
php查询mssql出现乱码的解决方法
2014/12/29 PHP
PHP实现动态删除XML数据的方法示例
2018/03/30 PHP
PHP抽象类与接口的区别实例详解
2019/05/09 PHP
iframe的onload在Chrome/Opera中执行两次Bug的解决方法
2011/03/17 Javascript
JS正则验证邮箱的格式详细介绍
2013/11/19 Javascript
JS+JSP checkBox 全选具体实现
2014/01/02 Javascript
jquery的live使用注意事项
2014/02/18 Javascript
js实现checkbox全选和反选示例
2014/05/01 Javascript
js语法学习之判断一个对象是否为数组
2014/05/13 Javascript
NodeJs读取JSON文件格式化时的注意事项
2016/09/25 NodeJs
jQuery实现页面倒计时并刷新效果
2017/03/13 Javascript
js模拟支付宝密码输入框
2017/04/11 Javascript
js案例之鼠标跟随jquery版(实例讲解)
2017/07/21 jQuery
jQuery动态添加元素无法触发绑定事件的解决方法分析
2018/01/02 jQuery
Node.js log4js日志管理详解
2018/07/31 Javascript
vue.js实现只能输入数字的输入框
2019/10/19 Javascript
jQuery 图片查看器插件 Viewer.js用法简单示例
2020/04/04 jQuery
[00:05]ChinaJoy现场 DOTA2玩家高呼“CN DOTA BEST DOTA”
2019/08/04 DOTA
python使用smtplib模块通过gmail实现邮件发送的方法
2015/05/08 Python
总结网络IO模型与select模型的Python实例讲解
2016/06/27 Python
Python数据可视化正态分布简单分析及实现代码
2017/12/04 Python
python+selenium实现登录账户后自动点击的示例
2017/12/22 Python
PyQt5下拉式复选框QComboCheckBox的实例
2019/06/25 Python
python+requests接口压力测试500次,查看响应时间的实例
2020/04/30 Python
python seaborn heatmap可视化相关性矩阵实例
2020/06/03 Python
Python中logging日志记录到文件及自动分割的操作代码
2020/08/05 Python
Python机器学习工具scikit-learn的使用笔记
2021/01/28 Python
解决Firefox下不支持outerHTML问题代码分享
2014/06/04 HTML / CSS
美国滑板店:Tactics
2020/11/08 全球购物
物流专业大学应届生求职信
2013/11/03 职场文书
关于诚信的活动方案
2014/08/18 职场文书
班委竞选稿范文
2015/11/21 职场文书
redis不能访问本机真实ip地址的解决方案
2021/07/07 Redis