node.js - GitLab CI 使用 Node 测试 master 和 branch 之间的差异

标签 node.js git continuous-integration

目前我正在尝试在 GitLab CI 上测试 master 和分支之间的区别。

var branch = require('git-branch'),
    gitDiffTree = require('git-diff-tree'),
    path = require('path');

var branch = process.env.CI_BUILD_REF_NAME || branch.sync();
var repoPath = path.resolve(process.env.REPO || (__dirname + '/../.git'));

{
  repoPath: repoPath,
  gitDiffTreeOptions: {
    rev: 'master..' + branch
  }
}

这是我正在使用的重要代码。这在本地运行良好,但在 GitLab CI 上运行时,它显示 fatal: bad revision 'master.. branch' 两次 branch 变量都填充了相同的值。任何建议如何让它工作?它以前用于执行 rev: HEAD 但效果不是很好,因为它只测试了分支中的最新提交,而不是所有提交。

最佳答案

我遇到了类似的问题(bad revision 'master' when running git diff master -- . and similar commands),并使其工作如下:

  1. 运行 git fetch origin master(从管道中)
  2. 在引用 master 分支时,使用 origin/master 而不是 master

我想 gitlab 获取存储库内容的方式不会导致 master 成为本地有效的分支名称。我对 git 的内部结构不够熟悉,无法准确指出原因。

关于node.js - GitLab CI 使用 Node 测试 master 和 branch 之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40268460/

相关文章:

Git pull 覆盖并且不 merge 或确认同一分支(master)上的冲突

python - 如何从 python 脚本运行 python 文件中的所有测试?

node.js - 如何使用 node.js 读取和解析 gitconfig 文件?

node.js - 如何在 node.js 中组织前后端项目结构?

node.js - config.js 文件的 Typescript 版本

java - Travis-ci 忽略 gradle 的缓存设置

continuous-integration - "Trigger on changes in snapshot dependencies"好像没有正常工作

node.js - Nginx 反向代理 + ExpressJS + Angular + SSL 配置问题

git - 使用 Visual Studio Online 创建远程 GIT 分支

Git pull 入一个未跟踪的 repo 副本