0

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

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

4

2 回答 2

1

可以仅通过 github api 提交和推送 github 远程 repo。可以在系统上不安装 git 的情况下完成吗?

Kinda:您可以通过 API 与原始对象进行交互,我不确定您是否可以表现得好像 git 在您的机器上一样,并且可以像在本地安装了 git 那样从本地工作副本中推/拉.

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

为了理解低级对象,我推荐 git book 的“Git Internals”章节,10.2 Git 对象10.3 Git 参考。还有“从头开始”的教程,通过从头开始构建部分 git 客户端,以更实际的方式解释这些结构。

所以我只是想知道是否只能通过python请求调用独立的github api来做同样的事情,但要求是我不必在我的本地系统中安装Git。

见上文,有点:您当然可以通过 API 以几乎所有可能的方式与 github 存储库进行交互,但是从 API 重建 git 客户端可能很困难。

于 2020-01-28T07:49:21.827 回答
0

PyGithub 将使您能够处理我们在 Github.com 中的任何内容。管理本地 git。喜欢,提交或推动或藏匿。您可能需要使用一些处理 Git 的 python 模块,而不是 Github。示例之一可能是 https://github.com/gitpython-developers/GitPython

于 2020-01-28T07:42:50.443 回答