我的目标是通过GIT
代码在.NET
存储库上执行克隆和提取操作。克隆时,我特别想克隆一个特定的分支。如果特定的存储库已经克隆但具有不同的分支,那么我也希望能够知道它。
我已经成功地使用Java中的jGit
实现了此功能,但是现在我需要在.NET
中开发类似的工具,并且我更喜欢使用NGit
,因为它是{{ 1}}库。
但是,尽管我使用了将相关参数传递给jGIT
中的clone方法的精确方法,但是我看不到存储库正在下载。下面是我的代码:
NGit
运行此命令时,需要花费几秒钟的时间,并且没有错误。但是在下载文件夹中,我看到只有一个包含某些元数据的Dim branches As List(Of String) = New List(Of String) From {branch}
Git.CloneRepository.
SetURI(cloneURL).
SetDirectory(New Sharpen.FilePath(downloadFolder)).
SetBranchesToClone(branches).
SetCredentialsProvider(New UsernamePasswordCredentialsProvider(userID, userPwd)).
SetBranch(branch).
Call()
文件夹,并且未下载源文件。如果我从上述代码中删除了.git
和SetBranchesToClone
方法,它将成功从master分支下载文件。
为什么在提供分支机构信息时不起作用?
答案 0 :(得分:0)
我发现在jGit中,您可以使用确切的分支名称,例如MyBranch
,而在NGit的情况下,您需要传递refs/heads/MyBranch
才能起作用。显然,尽管nGit声称是jGit的自动端口,但是它们的工作方式还是有一些细微的差异。