Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.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
C++ git_clone()克隆just.git文件夹(libgit2)_C++_Git_Libgit2 - Fatal编程技术网

C++ git_clone()克隆just.git文件夹(libgit2)

C++ git_clone()克隆just.git文件夹(libgit2),c++,git,libgit2,C++,Git,Libgit2,当我执行git_clone()时,它会成功运行,但它只克隆.git文件夹。当我使用 git clone http:/url.address.com/myRemoteRepo C:/destination/to/clone 在终端中,它还克隆了另一个文件夹,而不仅仅是.git文件夹,我希望git_clone()能够以这种方式工作,这可能吗 我的代码: 注释完这两行之后,它就开始工作了注释掉签出选项后它工作的原因是git\u checkout\u options默认为签出策略的干运行GIT\u CL

当我执行git_clone()时,它会成功运行,但它只克隆.git文件夹。当我使用

git clone http:/url.address.com/myRemoteRepo C:/destination/to/clone

在终端中,它还克隆了另一个文件夹,而不仅仅是.git文件夹,我希望git_clone()能够以这种方式工作,这可能吗

我的代码:
注释完这两行之后,它就开始工作了

注释掉签出选项后它工作的原因是
git\u checkout\u options
默认为签出策略的干运行<另一方面,code>GIT\u CLONE\u OPTIONS\u INIT将签出策略初始化为
GIT\u checkout\u SAFE
。通过在签出选项上设置策略,可以获得相同的行为:

clone_opts.checkout_opts.checkout_strategy = GIT_CHECKOUT_SAFE;

克隆
操作之后通常会自动执行
签出
。这就是为什么在
clone\u opts
中定义了
checkout\u options
,但您没有指定如何初始化这些选项…@rodrigo我添加了设置选项的代码在注释checkou\u opts初始化后,其工作原理我猜默认克隆配置指示签出头部,而默认签出配置没有任何分支集。
git_clone_options clone_opts = GIT_CLONE_OPTIONS_INIT;
        // git_checkout_options checkout_opts = GIT_CHECKOUT_OPTIONS_INIT;
        // clone_opts.checkout_opts = checkout_opts;
        clone_opts.fetch_opts.callbacks.credentials = cred_acquire_cb;
clone_opts.checkout_opts.checkout_strategy = GIT_CHECKOUT_SAFE;