是否可以仅使用 github api v3 从我的本地系统提交并推送到远程仓库?

Is it possible to commit and push into a remote repo from my local system using only the github api v3?

好吧,这似乎是一个愚蠢的问题,我没有太多使用 git 的经验,因为我的工作一直依赖于 GitHub 桌面。所以我的问题是,能否仅通过 github api 提交和推送 github 远程仓库。如果不在您的系统上安装 git 可以完成吗?我使用了 PyGitHub 和 git-python 甚至 python 子进程,它们可用于创建远程仓库、初始化并添加到本地仓库并执行提交并推送到远程仓库,我知道这些服务需要使用系统上安装的 git 客户端。

所以我只是想知道是否只能通过 python 请求调用独立 git 集线器 api 来做同样的事情,但要求是我不必在我的本地系统中安装 Git。对此事的任何帮助都会很有启发性。

PyGithub 将使您能够处理我们在 Github.com 中拥有的任何东西。管理您的本地 git。比如,提交或推送或隐藏。您可能需要使用一些 python 模块来处理 Git,而不是 Github。其中一个例子可能是 https://github.com/gitpython-developers/GitPython

Can a github remote repo be committed to and pushed to via only the github api. Can it be done without installing git on your system?

有点:您可以通过 API 与原始对象进行交互,我不确定您是否可以表现得好像 git 在您的机器上并从 push/pull如果您 确实 在本地安装了 git,那么本地工作副本。

我的经验是,它需要对 Git 的底层基础知识有一定的了解(blob、树、提交、引用及其关系):v3 API 公开了一个git data / git database 端点,它提供对低级 git 结构的透明访问。有一些限制(例如,不能通过这个与一个全新的空存储库交互,你必须以某种方式至少有一个提交,像 "cherrypick" 或 "rebase" 这样的高级操作不可用并且如果你想要它们,必须用手卷,...)但除此之外它工作正常。

要了解低级对象,我建议阅读 git 书中的 "Git Internals" 章节,第 10.2 Git Objects and 10.3 Git References 节。还有 "from the ground up" 教程通过从头开始构建部分 git 客户端,以更实用的方式解释这些结构。

So I was just wondering if only the standalone github api can be called through python requests to do the same but the requirement being that I don't have to get Git installed in my local system.

见上文,有点:你肯定可以通过 API 以几乎所有可能的方式与 git 集线器存储库进行交互,但是重建 git 客户端 API 可能很难。