【问题标题】:LibGit2Sharp CheckoutPaths()LibGit2Sharp CheckoutPaths()
【发布时间】:2014-03-07 16:04:41
【问题描述】:

我做了一个提交 (49916.....) 现在我想将提交的一个文件检出到工作目录中。该文件名为 NEW.txt。 如果我输入

Git 结帐 49916 NEW.txt

在 Git Bash 中,它会在我的工作目录中创建包含内容的 NEW.txt 文件。

但是我的 LibGit2Sharp 命令不想工作。我做错了什么?

       var repo = new Repository(repopath);
       var checkoutPaths = new[] { "NEW.txt"};    
       repo.CheckoutPaths("49916", checkoutPaths);

我阅读了所有关于结帐路径功能的文章。但我无法让它工作。我从 LibGit2Sharp 结帐测试文件中获得了该功能。

            repo.CheckoutPaths(checkoutFrom, new[] { path });

【问题讨论】:

  • 除了@jamill 的问题,调用 CheckoutPaths() 之前您的工作目录的状态是什么?文件存在吗?
  • 我都测试了。因此,文件存在和不存在。现在两种情况都有效。 :)

标签: git repository git-checkout libgit2 libgit2sharp


【解决方案1】:

当您运行该代码时会发生什么?它是否运行完成但工作目录中没有变化?如果您尝试使用CheckoutModifiers.Force 选项结帐会发生什么情况?

CheckoutOptions options = new CheckoutOptions { CheckoutModifiers = CheckoutModifiers.Force };
repo.CheckoutPaths("49916", checkoutPaths, options);

【讨论】:

  • 它运行完成,但工作目录没有变化。你的遮阳篷解决了我的问题。我错过了这些选项。非常感谢!!!
【解决方案2】:

我有类似的问题。代码运行完成,但工作目录没有变化。 原因是我的checkoutPaths 收藏。

我传递了相对于应用程序目录的文件路径,而不是相对于存储库本身的路径

例如

错误的路径: Repositories/MyRepo/MyFile.txt

正确路径: MyFile.txt

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多