我想使用 Ruby octokit gem 将更改应用到 GitHub 存储库。这将是 Ruby 2(不是 Rails)。
我已使用 API 进行身份验证并查看现有提交的对象:树和 blob。我不明白我是如何更新、添加和删除部分存储库的。
使用git
命令行工具,我将克隆存储库,将更改的文件复制到顶部,然后git add -A .
在提交和推送更改之前在顶层执行。这样做非常简单。我编写了一些 Ruby 代码,通过对底层 git 工具的系统调用来执行此操作。
但是,我想了解 API 并直接执行更新,而无需克隆和推送。我在这里和这里阅读了一些背景资料,证明这是可能的,但它们只添加了一个文件。
我编写了一些代码来遍历目录并为所有内容上传 blob,希望这些 blob 计算相同的 sha 值时无关紧要。但我认为这确实效率低下,必须有更好的方法,也许在发布之前在本地比较 sha 值。或者,API 可能包含git add -A
我错过的等价物。
如果有人知道如何做到这一点,或者可以指出合适的例子来帮助我。当我解决它时,我会自己发布一个答案。