详解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 apply/call/caller/callee/bind使用方法与区别分析
Oct 28 Javascript
jQuery阻止事件冒泡具体实现
Oct 11 Javascript
javascript 兼容各个浏览器的事件
Feb 04 Javascript
js实现鼠标左右移动,图片也跟着移动效果
Jan 25 Javascript
详解Vue-Cli 异步加载数据的一些注意点
Aug 12 Javascript
JS 实现缓存算法的示例(FIFO/LRU)
Mar 20 Javascript
深入理解Node module模块
Mar 26 Javascript
详解js静态检查工具eslint配置文件
Nov 23 Javascript
详解vue中axios的使用与封装
Mar 20 Javascript
了解JavaScript表单操作和表单域
May 27 Javascript
Vue中全局变量的定义和使用
Jun 05 Javascript
vue 避免变量赋值后双向绑定的操作
Nov 07 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
日本收入最高的漫画家:海贼王作者版税年收入高达8.45亿元
2020/03/04 日漫
德劲1103的维修打理经验
2021/03/02 无线电
nginx+php-fpm配置文件的组织结构介绍
2012/11/07 PHP
PHP与Java对比学习日期时间函数
2016/07/03 PHP
面向对象的编程思想在javascript中的运用上部
2009/11/20 Javascript
JavaScript中的null和undefined解析
2012/04/14 Javascript
JavaScript设计模式之代理模式介绍
2014/12/28 Javascript
jQuery Validate验证框架经典大全
2015/09/23 Javascript
jQuery给元素添加样式的方法详解
2015/12/30 Javascript
常用的JQuery函数及功能小结
2016/03/24 Javascript
JS跨域解决方案之使用CORS实现跨域
2016/04/14 Javascript
Javascript oop设计模式 面向对象编程简单实例介绍
2016/12/13 Javascript
webpack本地开发环境无法用IP访问的解决方法
2018/03/20 Javascript
Vue.js 实现微信公众号菜单编辑器功能(一)
2018/05/08 Javascript
详解Jest结合Vue-test-utils使用的初步实践
2019/06/27 Javascript
vscode 配置vue+vetur+eslint+prettier自动格式化功能
2020/03/23 Javascript
jquery实现简单自动轮播图效果
2020/07/29 jQuery
[59:44]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 paiN vs iG
2018/03/31 DOTA
Python 学习笔记
2008/12/27 Python
解析Python编程中的包结构
2015/10/25 Python
Python for Informatics 第11章 正则表达式(一)
2016/04/21 Python
六行python代码的爱心曲线详解
2019/05/17 Python
在交互式环境中执行Python程序过程详解
2019/07/12 Python
python os模块常用的29种方法使用详解
2020/06/02 Python
Roxy荷兰官方网站:冲浪、滑雪板、服装和配件
2019/10/22 全球购物
欧舒丹俄罗斯官方网站:L’OCCITANE俄罗斯
2019/11/22 全球购物
金智子午JAVA面试题
2015/09/04 面试题
秋季运动会加油稿200字
2014/01/11 职场文书
美德少年事迹材料
2014/01/23 职场文书
全神贯注教学反思
2014/02/03 职场文书
《圆明园的毁灭》教学反思
2014/02/28 职场文书
经理助理岗位职责
2014/03/05 职场文书
大学生村官个人对照检查材料(群众路线)
2014/09/26 职场文书
申请吧主发表的感言
2015/08/03 职场文书
MYSQL 的10大经典优化案例场景实战
2021/09/14 MySQL
联想win10摄像头打不开怎么办?win10笔记本摄像头打不开解决办法
2022/04/08 数码科技