详解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 相关文章推荐
浅谈Javascript嵌套函数及闭包
Nov 09 Javascript
jquery prop的使用介绍及与attr的区别
Dec 19 Javascript
JS方法调用括号的问题探讨
Jan 24 Javascript
Jquery 实现checkbox全选方法
Jan 28 Javascript
深入理解JavaScript系列(45):代码复用模式(避免篇)详解
Mar 04 Javascript
jquery.gridrotator实现响应式图片展示画廊效果
Jun 23 Javascript
jQuery中Find选择器用法示例
Sep 21 Javascript
js实现类bootstrap模态框动画
Feb 07 Javascript
浅谈javascript的url参数parse和build函数
Mar 04 Javascript
angular之ng-template模板加载
Nov 09 Javascript
node实现基于token的身份验证
Apr 09 Javascript
react antd表格中渲染一张或多张图片的实例
Oct 28 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
全国FM电台频率大全 - 12 安徽省
2020/03/11 无线电
PHP 代码规范小结
2012/03/08 PHP
PHP根据图片色界在不同位置加水印的方法
2015/07/01 PHP
php获取linux命令结果的实例
2017/03/13 PHP
PHP CURL使用详解
2019/03/21 PHP
MooTools 1.2中的Drag.Move来实现拖放
2009/09/15 Javascript
JavaScript可否多线程? 深入理解JavaScript定时机制
2012/05/23 Javascript
文字不间断滚动(上下左右)实例代码
2013/04/21 Javascript
利用javascript判断文件是否存在
2013/12/31 Javascript
Jquery Mobile 自定义按钮图标
2015/11/18 Javascript
基于jQuery实现收缩展开功能
2016/03/18 Javascript
详解Angular2中的编程对象Observable
2016/09/17 Javascript
AngularJS实用基础知识_入门必备篇(推荐)
2017/07/10 Javascript
前端开发不得不知的10个最佳ES6特性
2017/08/30 Javascript
JSON数据中存在单个转义字符“\”的处理方法
2018/07/11 Javascript
微信小程序自定义组件封装及父子间组件传值的方法
2018/08/28 Javascript
vue中@change兼容问题详解
2019/10/25 Javascript
[54:02]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 IG vs VGJ.T
2018/04/03 DOTA
[55:35]DOTA2-DPC中国联赛 正赛 CDEC vs Dragon BO3 第二场 1月22日
2021/03/11 DOTA
python多线程threading.Lock锁用法实例
2014/11/01 Python
Python采用socket模拟TCP通讯的实现方法
2014/11/19 Python
python日志记录模块实例及改进
2017/02/12 Python
批量获取及验证HTTP代理的Python脚本
2017/04/23 Python
PyQt5实现登录页面
2020/05/30 Python
详解python的super()的作用和原理
2020/10/29 Python
澳大利亚正品化妆品之家:Cosmetic Capital
2017/07/03 全球购物
Origins加拿大官网:雅诗兰黛集团高端植物护肤品牌
2017/11/19 全球购物
中国包裹转运寄送国际服务:Famiboat
2019/07/24 全球购物
简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程
2016/01/06 面试题
工程地质勘察专业大学生求职信
2013/10/13 职场文书
副校长个人对照检查材料思想汇报
2014/10/04 职场文书
三严三实心得体会范文
2014/10/13 职场文书
介绍信范文大全
2015/05/07 职场文书
贫困生证明范文
2015/06/16 职场文书
高中历史教学反思
2016/02/19 职场文书
解决pycharm下载库时出现Failed to install package的问题
2021/09/04 Python