详解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的Cookies
Jan 16 Javascript
使用jquery实现图文切换效果另加特效
Jan 20 Javascript
JQuery实现鼠标移动到图片上显示边框效果
Jan 09 Javascript
AngularJS基础 ng-mouseover 指令简单示例
Aug 02 Javascript
jQuery 常见小例汇总
Dec 14 Javascript
jQuery日程管理插件fullcalendar使用详解
Jan 07 Javascript
js 调用百度分享功能
Feb 27 Javascript
Jquery获取radio选中的值
May 05 jQuery
JS仿QQ好友列表展开、收缩功能(第一篇)
Jul 07 Javascript
详解处理bootstrap4不支持远程静态框问题
Jul 20 Javascript
js实现双色球效果
Aug 02 Javascript
js实现表格数据搜索
Aug 09 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
php批量删除数据
2007/01/18 PHP
php实现水仙花数示例分享
2014/04/03 PHP
php获取当前页面完整URL地址
2015/12/30 PHP
php中文乱码问题的终极解决方案汇总
2017/08/01 PHP
thinkPHP5.1框架路由::get、post请求简单用法示例
2019/05/06 PHP
会自动逐行上升的文本框
2006/06/30 Javascript
从sohu弄下来的flash中展示图片的代码
2007/04/27 Javascript
Array的push与unshift方法性能比较分析
2011/03/05 Javascript
js判断鼠标同时离开两个div的思路及代码
2013/05/31 Javascript
JavaScript调用客户端的可执行文件(示例代码)
2013/11/28 Javascript
原生js编写设为首页兼容ie、火狐和谷歌
2014/06/05 Javascript
nodejs教程之入门
2014/11/21 NodeJs
JavaScript插件化开发教程(五)
2015/02/01 Javascript
js实现异步循环实现代码
2016/02/16 Javascript
jQuery ajaxForm()的应用
2016/10/14 Javascript
JS判断鼠标进入容器的方向与window.open新窗口被拦截的问题
2016/12/23 Javascript
详解NODEJS的http实现
2018/01/04 NodeJs
微信小程序实现YDUI的ScrollNav组件
2018/02/02 Javascript
jQuery实现经典的网页3D轮播图封装功能【附源码下载】
2019/02/15 jQuery
Vuepress 搭建带评论功能的静态博客的实现
2019/02/17 Javascript
vue响应式更新机制及不使用框架实现简单的数据双向绑定问题
2019/06/27 Javascript
Vue.js下拉菜单组件使用方法详解
2019/10/19 Javascript
JavaScript 中判断变量是否为数字的示例代码
2020/10/22 Javascript
在windows系统中实现python3安装lxml
2016/03/23 Python
分享一个可以生成各种进制格式IP的小工具实例代码
2017/07/28 Python
对numpy下的轴交换transpose和swapaxes的示例解读
2019/06/26 Python
python issubclass 和 isinstance函数
2019/07/25 Python
ffmpeg+Python实现B站MP4格式音频与视频的合并示例代码
2020/10/21 Python
python批量合成bilibili的m4s缓存文件为MP4格式 ver2.5
2020/12/01 Python
python dir函数快速掌握用法技巧
2020/12/09 Python
css3进阶之less实现星空动画的示例代码
2019/09/10 HTML / CSS
运动会跳远加油稿
2014/02/20 职场文书
消防安全宣传口号
2014/06/10 职场文书
婚礼领导致辞大全
2015/07/28 职场文书
四年级数学教学反思
2016/02/16 职场文书
python神经网络学习 使用Keras进行回归运算
2022/05/04 Python