问题标签 [nodegit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - 使用 nodegit 创建本地推送到远程
因此,我尝试使用 nodegit 库以编程方式执行以下操作:
Checkout hotfix branch 从 hotfix branch 获取 head commmit 创建一个 topic 分支,其 head 指向 hotfix branch head 将上游主题分支设置为远程 Cherry 从 master 中选择一个提交并应用于主题分支 Pause 开发人员修复cherry pick 合并并提交本地更改 然后代码pushs 自动创建一个拉取请求所以看起来我们一直到#4。当我使用 VSO Rest SDK for node 远程执行这些步骤并且没有冲突时,一切都可以在 VSO 上正常运行。它只是在本地使用 nodegit。
看起来从 nodegit 返回的所有对象都是本机对象,因此无法使用调试评估查看任何数据。拿到原型就行了。这是nodegit代码。每次我尝试设置上游分支时,都会收到有关引用无效的错误。这是代码。看到什么了吗?
在上面的代码中,冲突是我用来构造本地 nodegit 对象的 VSO 对象。
git - 如何使用 nodegit 检测 git 存储库分歧
从nodegit获取提交后origin/master
,有什么方法可以检测到本地存储库是否与原点不同?
基本上我正在寻找一种相当于命令行的方法......
我尝试过使用repo.getStatus().then(...)
,但它解析为一个空列表。
electron - 如何在 Electron 环境中使用 nodegit
我很难在环境nodegit
中运行的Angular 9
应用程序中使用electron
。这不是安装问题,也不是编译问题,因为我可以让它以某种方式工作......
当我在主进程中执行所有调用时nodegit
(通过 IPC 消息),我的调用者需要访问完整的类,例如 Repository。当我们通过 IPC 发送响应时,它会被序列化。所以,在线路的另一端,我得到的只是一个空对象。
这工作正常。它克隆了 repo,但调用者没有收到实际的 Repository 类,因为它正在被序列化。
我能做些什么?
我尝试nodegit
直接在渲染器中使用,但它需要一个回调来进行身份验证,看起来回调在渲染器中没有被正确调用......
这是我尝试移至渲染器进程的代码
克隆过程开始(因为我可以看到创建的项目文件夹),我的凭据回调被调用(因为我在控制台中看到'credentialsCallback'),但我收到此错误:
错误:需要远程身份验证但未设置回调
尽管我的回调被调用。
我正在使用const git = electron.remote.require('nodegit');
,因为如果我require('nodegit')
直接使用,我会在主进程控制台中收到此错误
./node_modules/promisify-node/index.js 中的警告 107:14-27 关键依赖项:依赖项的请求是一个表达式
./node_modules/nodegit/build/Release/nodegit.node 中的警告 1:0 模块解析失败:意外字符 '�' (1:0) 您可能需要适当的加载器来处理此文件类型,目前没有加载器配置为处理这个文件。请参阅https://webpack.js.org/concepts#loaders (此二进制文件省略了源代码)
那么我在这里做错了什么?
我正在使用电子 6.0.7
我正在使用nodegit 0.26.4
node.js - 使用 NodeGit 签出特定的提交
我有一个 NodeGit 存储库对象,repo
和一个sha
代表提交 id 的字符串代码commit_id
。如何使用 NodeGit 执行此提交的 git checkout,它的作用与命令相同git checkout $commit_id
?
到目前为止,我已经尝试Reference
使用提交 ID 创建一个,然后使用checkoutRef
它来检查参考。但是,存储库没有改变,我得到了错误Error: the given reference name '<my commit id>' is not valid
。
谢谢您的帮助。
node.js - 使用 NodeGit 在存储库中执行 `git clean`
我有一个 NodeGit 存储库,repo
. 此存储库在已跟踪和未跟踪的文件和目录中都有一些本地更改。如何清理这个存储库,效果与git clean -f -d
命令相同,以便之后本地更改不再存在?
谢谢您的帮助。
node.js - 使用 nodegit 克隆一个裸仓库
你好,
我正在克隆一个工作树作为一个裸仓库nodegit
这会创建一个裸仓库,就像
注意:newbare
对 中的所有localrepo
分支都有引用/git/newbare/refs/remote/origin
,但只有localrepo's
活动分支被克隆到newbare's
本地引用中
这意味着如果localrepo
克隆时在master上,则newbare
仅跟踪master
现在我可以git
跟踪所有分支origin
如果您想在此处获取有关获取的更多信息,请查看refspec 。
问题
我不知道如何在裸目录中设置跟踪分支,所有分支都remote/origin
使用nodegit
node.js - 在 Electron 中运行 nodegit 失败
我nodegit 0.26.5
通过npm
Electron 应用程序的渲染器部分安装并导入包。在编译期间,我收到以下错误:
在我的node_modules/nodegit/build
目录中,我只有一个Release
目录。有人知道我在这里想念什么吗?
我创建了一个 repo,它是从样板模板中派生出来的。我只添加nodegit
和@types/nodegit
作为依赖项并将其导入details.component.ts
https://github.com/Githubber2021/electron-nodegit-error
重现问题。任何人都可以在他们的机器上重现错误吗?我在这里想念什么?非常感谢您的任何帮助或提示!!
node.js - 如何创建一个 Git Repo URL 供其他人在 NodeJS 中克隆?
我正在尝试在我的本地设置一个中央存储库,在 NodeJS 上运行,其他人可以访问、创建自己的 git 存储库、克隆、提交、推送、从他们的 git 存储库中提取。这个想法更像是设置一个在 NodeJS 上运行的本地 Github。我目前正在使用nodegit库。
我可以git init --bare
通过使用创建一个新的存储库 () ,还可以使用Git.Repository.init(repopath, is_bare)
为该存储库 () 设置自定义克隆 urlgit remote set-url
Git.Remote.setUrl(repository, remote, cloneUrl)
但我坚持创建像“http://example.com/repo/example.git”这样的克隆 URL。如何在 NodeJS 中创建一个其他人可以用来 git clone 的 repo URL?它应该指向哪里?我应该为 repo URL 提供什么样的响应?
目前我的代码如下:
任何帮助表示赞赏!
node.js - 使用 nodegit 创建 git 存储库时出错
它成功创建了文件夹、文件和存储库,但抛出了错误。我不确定错误到底是什么意思,我无法通过代码来弄清楚?
TEST1 TypeError: fse.ensureDir(...).then(...).then(...).then(...).then(...).then(...).then(. ..).then(...).then(...).done 不是 Object.createGitRepository 中的函数 (c:\CodeRepos\work\github\aa\ac\service\GitService.js:50:6 ) 在 Layer.handle [as handle_request] (c:\CodeRepos\work\github\aa\ac) 的 createRepository (c:\CodeRepos\work\github\aa\ac\controllers\repository-ctrl.js:55:33) \node_modules\express\lib\router\layer.js:95:5) 在下一个 (c:\CodeRepos\work\github\aa\ac\node_modules\express\lib\router\route.js:137:13) 在Route.dispatch (c:\CodeRepos\work\github\aa\ac\node_modules\express\lib\router\route.js:112:3) 在 Layer.handle [as handle_request] (c:\CodeRepos\work\github \aa\ac\node_modules\express\lib\router\layer.js:95:5) 在 c:\CodeRepos\work\github\aa\ac\node_modules\express\lib\router\index.js:281:22在 Function.process_params (c:\CodeRepos\work\github\aa\ac\node_modules\express\lib\router\index.js:335:12)在下一个(c:\CodeRepos\work\github\aa\ac\node_modules\express\lib\router \index.js:275:10) 在 Function.handle (c:\CodeRepos\work\github\aa\ac\node_modules\express\lib\router\index.js:174:3) 在路由器 (c:\CodeRepos \work\github\aa\ac\node_modules\express\lib\router\index.js:47:12) 在 Layer.handle [as handle_request] (c:\CodeRepos\work\github\aa\ac\node_modules\express \lib\router\layer.js:95:5) 在 trim_prefix (c:\CodeRepos\work\github\aa\ac\node_modules\express\lib\router\index.js:317:13) 在 c:\CodeRepos \work\github\aa\ac\node_modules\express\lib\router\index.js:284:7 在 Function.process_params (c:\CodeRepos\work\github\aa\ac\node_modules\express\lib\router\ index.js:335:12) 在下一个 (c:\CodeRepos\work\github\aa\ac\node_modules\express\lib\router\index.js:275:10)10)10)10)10)\CodeRepos\work\github\aa\ac\node_modules\express\lib\router\index.js:275:10) 在 Function.handle (c:\CodeRepos\work\github\aa\ac\node_modules\express\lib \router\index.js:174:3) 在路由器 (c:\CodeRepos\work\github\aa\ac\node_modules\express\lib\router\index.js:47:12) 在 Layer.handle [as handle_request ] (c:\CodeRepos\work\github\aa\ac\node_modules\express\lib\router\layer.js:95:5) 在 trim_prefix (c:\CodeRepos\work\github\aa\ac\node_modules\express \lib\router\index.js:317:13) 在 c:\CodeRepos\work\github\aa\ac\node_modules\express\lib\router\index.js:284:7 在 Function.process_params (c:\ CodeRepos\work\github\aa\ac\node_modules\express\lib\router\index.js:335:12)在下一个(c:\CodeRepos\work\github\aa\ac\node_modules\express\lib\router\ index.js:275:10)\CodeRepos\work\github\aa\ac\node_modules\express\lib\router\index.js:275:10) 在 Function.handle (c:\CodeRepos\work\github\aa\ac\node_modules\express\lib \router\index.js:174:3) 在路由器 (c:\CodeRepos\work\github\aa\ac\node_modules\express\lib\router\index.js:47:12) 在 Layer.handle [as handle_request ] (c:\CodeRepos\work\github\aa\ac\node_modules\express\lib\router\layer.js:95:5) 在 trim_prefix (c:\CodeRepos\work\github\aa\ac\node_modules\express \lib\router\index.js:317:13) 在 c:\CodeRepos\work\github\aa\ac\node_modules\express\lib\router\index.js:284:7 在 Function.process_params (c:\ CodeRepos\work\github\aa\ac\node_modules\express\lib\router\index.js:335:12)在下一个(c:\CodeRepos\work\github\aa\ac\node_modules\express\lib\router\ index.js:275:10)\CodeRepos\work\github\aa\ac\node_modules\express\lib\router\index.js:174:3) 在路由器 (c:\CodeRepos\work\github\aa\ac\node_modules\express\lib\router \index.js:47:12) 在 Layer.handle [as handle_request] (c:\CodeRepos\work\github\aa\ac\node_modules\express\lib\router\layer.js:95:5) 在 trim_prefix ( c:\CodeRepos\work\github\aa\ac\node_modules\express\lib\router\index.js:317:13) 在 c:\CodeRepos\work\github\aa\ac\node_modules\express\lib\router \index.js:284:7 在 Function.process_params (c:\CodeRepos\work\github\aa\ac\node_modules\express\lib\router\index.js:335:12) 在下一个 (c:\CodeRepos\工作\github\aa\ac\node_modules\express\lib\router\index.js:275:10)\CodeRepos\work\github\aa\ac\node_modules\express\lib\router\index.js:174:3) 在路由器 (c:\CodeRepos\work\github\aa\ac\node_modules\express\lib\router \index.js:47:12) 在 Layer.handle [as handle_request] (c:\CodeRepos\work\github\aa\ac\node_modules\express\lib\router\layer.js:95:5) 在 trim_prefix ( c:\CodeRepos\work\github\aa\ac\node_modules\express\lib\router\index.js:317:13) 在 c:\CodeRepos\work\github\aa\ac\node_modules\express\lib\router \index.js:284:7 在 Function.process_params (c:\CodeRepos\work\github\aa\ac\node_modules\express\lib\router\index.js:335:12) 在下一个 (c:\CodeRepos\工作\github\aa\ac\node_modules\express\lib\router\index.js:275:10)\CodeRepos\work\github\aa\ac\node_modules\express\lib\router\layer.js:95:5) 在 trim_prefix (c:\CodeRepos\work\github\aa\ac\node_modules\express\lib\router \index.js:317:13) 在 c:\CodeRepos\work\github\aa\ac\node_modules\express\lib\router\index.js:284:7 在 Function.process_params (c:\CodeRepos\work\ github\aa\ac\node_modules\express\lib\router\index.js:335:12) 在下一个 (c:\CodeRepos\work\github\aa\ac\node_modules\express\lib\router\index.js: 275:10)\CodeRepos\work\github\aa\ac\node_modules\express\lib\router\layer.js:95:5) 在 trim_prefix (c:\CodeRepos\work\github\aa\ac\node_modules\express\lib\router \index.js:317:13) 在 c:\CodeRepos\work\github\aa\ac\node_modules\express\lib\router\index.js:284:7 在 Function.process_params (c:\CodeRepos\work\ github\aa\ac\node_modules\express\lib\router\index.js:335:12) 在下一个 (c:\CodeRepos\work\github\aa\ac\node_modules\express\lib\router\index.js: 275:10)\CodeRepos\work\github\aa\ac\node_modules\express\lib\router\index.js:275:10)\CodeRepos\work\github\aa\ac\node_modules\express\lib\router\index.js:275:10)
似乎就行了:
返回 nodegit.Repository.init(path.resolve(__dirname, newRepoDir), 0);
我觉得这可能是相关的,但它没有解决它