【问题标题】:How to add files recursively to the master git branch using libgit2sharp如何使用 libgit2sharp 递归地将文件添加到主 git 分支
【发布时间】:2015-10-27 22:17:22
【问题描述】:

是否有一种简单的方法可以使用 libgit2sharp 递归地添加文件夹中的所有文件及其子文件夹?我试过了:

r.Stage("*");

但是当有多个文件夹和文件时,它似乎无法正常工作。浏览所有文件并添加文件的最佳方法是:

r.Stage(path_to_file)

我想将文件添加到 git 存储库的“主”分支。

【问题讨论】:

    标签: c# git libgit2sharp


    【解决方案1】:

    其中一个Stage 方法包括一个用于暂存文件的IEnumerable<string>,因此您可以在将其传递给Stage 之前构建该列表,而不是为每个文件调用一次Stage。

    即获取所有具有.cs 扩展名的文件recursively

    var files = Directory.GetFiles (repo.Info.WorkingDirectory, "*.cs", SearchOption.AllDirectories);
    repo.Stage (files);
    

    需要create一个master分支

    repo.CreateBranch("master"); 
    

    需要检查现有的master 分支:

    repo.Checkout ("master");
    

    【讨论】:

    • 假设.gitignore中的一些.cs文件,如果我用这种方式添加它们会被提交吗?
    • 您需要通过 IsPathIgnored() 方法过滤您的文件列表,因为 Stage() 是一个显式操作,就像通过 git 执行此操作一样,您可以暂存/提交您的文件中的文件.gitignore 通过-f 选项。
    猜你喜欢
    • 2021-09-10
    • 2018-04-26
    • 2019-06-13
    • 2014-05-09
    • 1970-01-01
    • 2015-05-22
    • 1970-01-01
    • 1970-01-01
    • 2014-11-13
    相关资源
    最近更新 更多