使用 libgit2 只获取新的分支
Fetch only new branches with libgit2
是否可以使用 libgit2 只获取新分支?这意味着不会更新 refs/remotes/<existing_branch>
,只会创建新的 refs/remotes/<new_branch>
。不确定 refs/heads/<new_branch>
应该做什么,但它可能也应该被创建,对吗?
目前,我看到获得任何新分支获取行为的唯一方法是调用 git_remote_fetch()
并为 refspecs 设置 NULL。然而,这将更新整个存储库。或者,我应该调用 git_remote_ls()
并为 *fetch
创建显式 refspec 吗?
这些不是 Git 中任何地方都存在的语义,因此您必须自己完成。如果您想找出哪些分支是新的,则必须在获取本身之前使用 git_remote_ls()
,找出哪些是新分支,然后使用 refspecs 列表仅下载那些。
我不知道你所说的使用 NULL
实现此行为是什么意思,因为无法设置默认的 refspecs 来做到这一点。这将表现得像 git fetch
并为给定的遥控器使用配置的 refspecs。
是否可以使用 libgit2 只获取新分支?这意味着不会更新 refs/remotes/<existing_branch>
,只会创建新的 refs/remotes/<new_branch>
。不确定 refs/heads/<new_branch>
应该做什么,但它可能也应该被创建,对吗?
目前,我看到获得任何新分支获取行为的唯一方法是调用 git_remote_fetch()
并为 refspecs 设置 NULL。然而,这将更新整个存储库。或者,我应该调用 git_remote_ls()
并为 *fetch
创建显式 refspec 吗?
这些不是 Git 中任何地方都存在的语义,因此您必须自己完成。如果您想找出哪些分支是新的,则必须在获取本身之前使用 git_remote_ls()
,找出哪些是新分支,然后使用 refspecs 列表仅下载那些。
我不知道你所说的使用 NULL
实现此行为是什么意思,因为无法设置默认的 refspecs 来做到这一点。这将表现得像 git fetch
并为给定的遥控器使用配置的 refspecs。