gpt4 book ai didi

git - 使用 Trees API 将 git 树从一个 Github 存储库复制到另一个

转载 作者:行者123 更新时间:2023-12-05 04:10:03 25 4
gpt4 key购买 nike

假设我有两个存储库,repo1repo2

假设 repo1 具有以下目录结构:

repo1
|--someFolder
|-- file1.txt
|-- file2.jpg

假设 repo2 是空的。我的目标是使用 GitHub Trees API 将所有 someFolder 复制到 repo2 中。但是我遇到了以下问题:

  1. 当我在对 url https://api.github.com/repos/my-username/repo2/git/trees 的 HTTP POST 请求中使用以下参数时以下参数

    {'base_tree': repo2_base_tree_sha,
    'tree': [//来自repo1的特殊格式的树
    {'模式':u'100644',
    '路径':u'.travis.yml',
    'sha': u'559d004c3af59b3bd8dcc486d5d2b5f91ab4f85d',
    '类型':u'blob'},
    {'模式':u'100644',
    '路径':u'README.md',
    'sha': u'11e4f5fa0b929ff6bccd8f5bcd99cbdbd845d69a',
    '类型':u'blob'}
    ]
    我收到一条 422 响应消息说tree.sha 559d004c3af59b3bd8dcc486d5d2b5f91ab4f85d 不是有效的 blob。这让我相信不能简单地使用 repo1 中的树为 repo2 构造一棵新树,那么如何从另一个存储库中取出一棵树并将其添加到另一个?

  2. 其次,除了 base_treerepo1 的 base_tree 之外,我可以使用上面相同的参数成功修改 repo1 的基础树沙。但是,当我访问 repo1 时,这些更改没有反射(reflect)出来,我不确定为什么。

最佳答案

我已经能够自己确定 2. 的答案。

创建新树不会自动更新github页面的原因是因为github上的最新提交没有指向我们新创建的树。我们必须通过创建指向新树的提交来解决这个问题。

目前正在研究 1。

--- 更新 7/12/17 ---

我也确定了数字 1 的答案。对于上面 'tree' 列表中的每个字典,仅当字典代表的文件已提交到目标存储库时,才应包含 'sha' 字段,否则您需要在字典中有一个 'content' 字段来存储文件所代表的内容。

关于git - 使用 Trees API 将 git 树从一个 Github 存储库复制到另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45023068/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com