Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
进行空提交+;在不首先克隆git回购的情况下推送_Git_Github_Github Api - Fatal编程技术网

进行空提交+;在不首先克隆git回购的情况下推送

进行空提交+;在不首先克隆git回购的情况下推送,git,github,github-api,Git,Github,Github Api,有没有办法在不首先克隆git存储库的情况下将空提交推送到(远程)git存储库 也就是说,我能达到 git clone https://github.com/example-org/example-repo.git cd example-repo git commit -m "empty commit" --allow-empty git push 不先在第一行克隆存储库 理想情况下,我希望使用“纯”git实现这一点,但是如果没有简单的方法实现纯git,那么使用github API也可以 背景:

有没有办法在不首先克隆git存储库的情况下将空提交推送到(远程)git存储库

也就是说,我能达到

git clone https://github.com/example-org/example-repo.git
cd example-repo
git commit -m "empty commit" --allow-empty
git push
不先在第一行克隆存储库

理想情况下,我希望使用“纯”git实现这一点,但是如果没有简单的方法实现纯git,那么使用github API也可以


背景:我需要空提交作为Heroku中自动部署机制的一部分,该机制在github提交上自动部署。

假设您关心的是下载存储库内容所花费的时间和资源,那么您可以使用浅层克隆和
git clone--depth 1
选项

根据:

--深度

创建一个浅层克隆,其历史记录被截断为指定的提交次数。表示
--单分支
,除非
--未给出任何单分支
来获取所有分支尖端附近的历史记录。如果要浅克隆子模块,请同时传递
--shallow submodules


还有
git克隆--bare
方法,如前所述,但推之前必须手动设置origin。

使用纯git--不可能,因为
git
只能在本地存储库上工作。使用Github API-可能,请参阅,我成功地创建了一个空提交作为最新提交的子级,但它没有显示在相应的分支中:(实际上你需要一个克隆,因为Git称之为“空的”commit实际上根本不是空的:它只是匹配其父commit。因此,您需要使用要复制的commit中的每个文件填充索引,并且需要使用父哈希ID设置为要复制的commit的哈希ID进行新的commit。这意味着您需要要复制的commit。深度1(和
--单分支
)就足够了,因为在复制提交之前不需要提交。