我实际上尝试使用libgit2和C ++来提交和推送git存储库。 使用HTTPS没有问题但是使用SSH我有错误:
git_remote_connect:命令无效:'XXX'YYY / test.git'' 您似乎正在使用ssh来克隆git:// URL。 确保你的core.gitProxy配置选项和 未设置GIT_PROXY_COMMAND环境变量
经过长时间的研究,我终于找到了我的问题通常来自哪里。 在git_remote_connect中,第三个参数是git_remote_callbacks。 我需要在这个回调中定义一个有效负载。 有效载荷需要是一个包含两个字符串的git_strarray但我绝对不知道我应该写什么字符串。一个shell命令?一个c ++函数?用户名?
如果我没有在回调中添加有效负载,我有错误: “无效的ssh路径,必须是两个字符串”
我创建了一个有效载荷:
char * str1 = "";
char * str2 = "XXX"; //The string that appear in the error message
char * astr[2];
astr[0] = str1;
astr[1] = str2;
git_strarray payload = {astr, 2};
push_options.callbacks.payload = &payload;
我的问题是:你知道我应该在两个有效载荷字符串中写什么吗?
我解决了我的问题:我将传输添加到我的回调中,这就是为什么它不起作用。感谢Carlosmn的耐心等待! 如果您遇到问题,可以加入libgit2:http://slack.libgit2.org/