Articles of git

如何使用Node.js获得远程git分支?

我使用这个叫做Gift的真棒库来完成我所有的标准git(拉,读取提交等)。 但是,我似乎无法得到远程分支机构。 我相信git branch -r命令会显示分支,但格式肯定不是机器可读的: origin/HEAD -> origin/master origin/dev origin/gh-pages origin/master 我想知道如何查看存储库所有的远程分支。 谢谢!

在Node应用程序之间共享代码

我们的应用程序由两个组件组成:API和客户端。 两者都是独立的Node应用程序 尽pipeAPI除了文档之外还没有任何前端组件,它们仍然共享一些常见文件,如Jade组件,规范化CSS,实用程序模块,最重要的是用于MongoDB交互的Mongoose模式和模型定义。 我真的不想习惯于我首先对API进行更改的工作stream程,然后将更改后的文件复制到客户端,反之亦然,所以find一个可行的解决scheme将是非常好的。 跨Node应用程序共享各种代码的最佳方式是什么? 在浏览网页时,我遇到了一些解决scheme,但在这种情况下,他们都没有真正的工作。 一种解决方法是从公共文件中创build一个节点模块,并使其与具有NPM的应用程序保持同步,但是这意味着我(以及未来可能的开发者)必须知道哪些文件是公共模块的一部分,并且需要它们用require('node_modules/mongo/schemas/example.js')代替require('mongo/schemas/example.js') 。 由于假设可能有数百个通用文件,所以不可能记住文件是否通用,特别是对于新的开发者。 另一个解决scheme是制作通用模块的git子模块。 这将是完美的,如果只有我可以包含子模块path的节点的要求path,所以万一没有find所需的文件在预期的位置(例如, mongo/schemas/example.js ),它会看起来在常见的子模块( common/mongo/schemas/example.js )。 这将是非常棒的,因为它将允许覆盖“本地”版本的公共文件。 这有点像Magento的作品。 这里的问题是,Node不允许编辑requirepath(至less,据说在Node 0.5之前是可能的),所以这是一个好消息。 第三种解决scheme是将公共存储库的内容粗暴地合并到应用程序的根目录中。 在这个解决scheme中没有真正不可逾越的问题,但我觉得这是一个不好的做法。 毕竟,这将不可能通过应用程序编辑通用文件,因为没有办法select性地将通用文件推送到通用的git存储库。 所以基本上这个解决scheme只会使工作stream程变得更乏味:对公共文件的所有修改都必须手工复制到公共代码库,然后推送到git remote,然后复制到其他应用程序。 所以这个解决scheme绝对不会为我削减。 看来第二个解决scheme是我唯一的(也是最好的)select,除非你们提出了一个更好的(我真正希望的是:D)。 如果有人知道改变节点需求path的方法,我将非常感激。

在Elastic Beanstalk上通过.ebextensions安装git

我收到了部署到Elastic Beanstalk的错误,因为实例上没有git。 我的package.json中的一个依赖依赖于一个git仓库,需要git clone 。 Git没有安装在实例上。 我尝试通过.ebextensions .conf文件进行安装,同时通过yum进行部署,但是当我将ssh移入实例时,它不在那里。 问题是:在该实例上调用npm install之前,在Elastic Beanstalk上运行的Linux实例上安装和运行git的正确方法是什么? 以下是显示错误的日志: [2015-04-18T09:00:02.815Z] ERROR [1777] : Command execution failed: Activity failed. (ElasticBeanstalk::ActivityFatalError) caused by: + /opt/elasticbeanstalk/containerfiles/ebnode.py –action npm-install npm WARN package.json amity-api-v2@2.0.0 No repository field. npm WARN package.json amity-api-v2@2.0.0 No README data npm WARN `git config –get remote.origin.url` returned wrong result (https://github.com/awslabs/dynamodb-document-js-sdk) undefined npm WARN […]

如何使用节点的npm从git获取软件包

我从git仓库克隆了一个项目,并使用npm install来安装软件包。 这些软件包包含git仓库中的一些模块。 但是,“npm install”失败,并显示以下消息: 15 error Failed resolving git HEAD (git@github.com:tinc/test.git) fatal: ambiguous argument 'master': unknown revision or path not in the working tree. 15 error Failed resolving git HEAD (git@github.com:tinc/test.git) Use '–' to separate paths from revisions, like this: 15 error Failed resolving git HEAD (git@github.com:tinc/test.git) 'git <command> [<revision>…] — [<file>…]' . . […]

当我改变git分支时切换node_modules文件夹

我正在与两个分支, master和feature-1 在master分支中,我使用的是lib xyz@1.0 在分支feature-1我已经安装了lib xyz 2.0版本的新版本 feature-1在master分支上没有被合并,因为它没有完成。 然后,当我切换到master再次我要重新安装lib@1.0 ,如果我再次切换到feature-1我必须重新安装lib@2.0 这些案例中最好的工作stream程是什么?

Node.js + Git:如何避免向存储库添加模块依赖

我的情况 我正在开发一个Node.js应用程序作为npm模块。 为了能够运行这个应用程序,我安装了所有的npm依赖项。 所以,我的项目包含一些包含外部模块依赖项构build的./node_module/文件夹。 我使用git维护我的项目,并使用Gi​​tHub存储库进行发布。 我的问题 我不想在GitHub上发布所有本地的npm模块依赖关系。 我只想发布我自己的代码。 我的模块的用户应该使用npm install来获取当前的构build依赖关系。 我的问题 什么是保持从我的GitHub存储库的依赖性build设的最佳方式? 感谢您的回答(或评论)。 – 如果有什么不清楚的地方,请发表评论。

使用node.js npm和git的最佳工作stream程

我正要用node.js做一个大型的项目,目前尝试分出一些东西。 在之前的节点项目中,我使用了所有节点模块的额外文件夹。 这个文件夹被git忽略,我pipe理的版本和通过git子模块更新,这是不容易的(没有依赖关系,更新到新版本并不总是很有趣)。 我正在寻找的是: npm install packagename npm dump_modules_into_file 所以参与这个项目的其他人都可以这样做: npm install_or_update_modules_from_file 我不想让我的git仓库跟踪node_modules 。 基本上我想要类似于symonfy2如何处理它捆绑 。 PS:我知道npm submodule packagename ,但这个命令不是很有帮助,因为它不会安装依赖关系,也不会更新模块。 PS2:我准备好了package.json ,但是这也有一些缺陷。 (没有参数,您必须手动更新模块版本。)

使用NodeGit CloneOptions克隆分支

我正在尝试解决如何将克隆选项传递给nodegit克隆方法。 节点git文档指出,clone方法的第三个参数是clone选项对象http://www.nodegit.org/nodegit/#Repo-clone git.Repo.clone(URL, path, CloneOptions, callback); 但是这个对象不包含在nodegit的标准构build中。 我已经将clone_options.cc文件的绑定添加到了bindings.gyp文件中,并且可以访问clone选项对象。 不过,我不能解决如何使用有效的分支名称来实例化它。 libgit2 api显示该选项是checkout_branch http://libgit2.github.com/libgit2/#HEAD/type/git_clone_options 任何人有任何见解如何做到这一点? 或者在一个支持在节点中克隆git分支的替代库? var CloneOptions = nodegit.CloneOptions; var options = new CloneOptions({checkout_branch: branchName}); git.Repo.clone(url, temp, options, function (err, repo) {…}); 结果是 Error: git_clone_options is required. nodegit的github问题页面上也有一个开放的线程 https://github.com/nodegit/nodegit/issues/127

不能强制提交文件到Heroku

我遇到了这个Git问题,我似乎无法解决它。 我有一个节点,我一直在build设,我终于达到了它的部署点。 我试图直接将文件推送到Heroku上的我的应用程序。 我知道我可以简单地从Github仓库中提取数据,但是我想避免公开我的私钥,所以我创build了一个自定义的模块来访问这些键(例如,“modules / private-variables。 JS“)。 这个文件包含在.gitignore中,所以我不把它推送到我的Github上,这是公开的。 当我把应用程序推到Heroku的时候,无论什么原因,我都无法专门推送这个文件。 git add -f modules/private-variables.js 无论什么原因,这是行不通的。 它仍然在回答“一切都是最新的” $ git add -f modules/private-variables.js $ git commit -m "7th attempt to include necessary file" $ git push heroku master 我甚至做了“git commit -a” $ git add -f modules/private-variables.js $ git commit -a $ git push heroku master 我跑了“heroku奔跑bash”,并得出结论,我的文件仍然不存在。 不可否认的是,我对Git还是比较缺乏经验,但是这是我第一次试图包含曾经在.gitignore中的文件,所以我从来没有这个问题。 我什至试图从.gitignore删除一行。 […]

npm脚本忽略错误

我目前有一个用于运行linter的npm脚本。 显然会有一些错误输出,但npm脚本失败,而不是只显示我的错误,继续前进。 这是非常可怕的,尤其是当我有别的东西叫脚本,因为它奇妙地打破了一切。 我总是可以运行npm run lint –force来避免错误,但是我一直没有–force豪华(例如,用git-hook)。 我怎样才能设置我的脚本输出错误,而不会造成混乱?