详解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-Mozilla和IE中的一个函数直接量的问题分析
Aug 12 Javascript
使用JavaScript动态设置样式实现代码及演示动画
Jan 25 Javascript
深入分析js的冒泡事件
Dec 05 Javascript
javascript嵌套函数和在函数内调用外部函数的区别分析
Jan 31 Javascript
javascript动态获取登录时间和在线时长
Feb 25 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐)
Jun 23 Javascript
javaScript 逻辑运算符使用技巧整理
May 03 Javascript
js es6系列教程 - 基于new.target属性与es5改造es6的类语法
Sep 02 Javascript
AngularJS基于http请求实现下载php生成的excel文件功能示例
Jan 23 Javascript
vue+iview+less+echarts实战项目总结
Feb 22 Javascript
JavaScript中的连续赋值问题实例分析
Jul 12 Javascript
vue-cli打包后本地运行dist文件中的index.html操作
Aug 12 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下连接ftp实现文件的上传、下载、删除文件实例代码
2010/06/03 PHP
利用PHP获取汉字首字母并且分组排序详解
2017/10/22 PHP
PHP htmlspecialchars()函数用法与实例讲解
2019/03/08 PHP
PHP实现的杨辉三角求解算法分析
2019/03/11 PHP
基于PHP+mysql实现新闻发布系统的开发
2020/08/06 PHP
JavaScript 直接操作本地文件的实现代码
2009/12/01 Javascript
JavaScript Object的extend是一个常用的功能
2009/12/02 Javascript
javascript中的prototype属性实例分析说明
2010/08/09 Javascript
分享20多个很棒的jQuery 文件上传插件或教程
2011/09/04 Javascript
JavaScript 代码压缩工具小结
2012/02/27 Javascript
jquery数组之存放checkbox全选值示例代码
2013/12/20 Javascript
JavaScript字符串对象toLowerCase方法入门实例(用于把字母转换为小写)
2014/10/17 Javascript
Jquery 实现图片轮换
2015/01/28 Javascript
JavaScript中Null与Undefined的区别解析
2015/06/30 Javascript
jQuery插件Flexslider实现图片轮播、图文结合滑动切换效果
2020/04/16 Javascript
AngularJS 中的Promise --- $q服务详解
2016/09/14 Javascript
Angular中使用ui router实现系统权限控制及开发遇到问题
2016/09/23 Javascript
jQuery实现的分页功能示例
2017/01/22 Javascript
详解Vue组件之间的数据通信实例
2017/06/17 Javascript
vue给input file绑定函数获取当前上传的对象完美实现方法
2017/12/15 Javascript
详解react native页面间传递数据的几种方式
2018/11/07 Javascript
谈谈为什么你的 JavaScript 代码如此冗长
2019/01/30 Javascript
JS实现前端动态分页码代码实例
2020/06/02 Javascript
nuxt 自定义 auth 中间件实现令牌的持久化操作
2020/11/05 Javascript
Python实现简单的四则运算计算器
2016/11/02 Python
tensorflow之变量初始化(tf.Variable)使用详解
2020/02/06 Python
如何基于windows实现python定时爬虫
2020/05/01 Python
Jupyter Notebook 远程访问配置详解
2021/01/11 Python
基于CSS3的animation属性实现微信拍一拍动画效果
2020/06/22 HTML / CSS
美国知名的百货清仓店:Neiman Marcus Last Call
2016/08/03 全球购物
三个Unix的命令面试题
2015/04/12 面试题
高一地理教学反思
2014/01/18 职场文书
最新奶茶店创业计划书
2014/01/25 职场文书
初中运动会前导词
2015/07/20 职场文书
sqlserver2017共享功能目录路径不可改的解决方法
2021/04/16 SQL Server
Python入门学习之类的相关知识总结
2021/05/25 Python