如何使用LibGit2Sharp部分暂存文件?

时间:2012-06-12 09:25:16

标签: c# .net git libgit2 libgit2sharp

我已提交此文件:

foo.txt的

line 1
line 2
line 3

现在我将其修改为:

line 1
line 1.5
line 2
line 2.5
line 3

我运行git add . && git diff --cached foo.txt这就是我得到的:

diff --git a/foo.txt b/foo.txt
index c4dfc64..4942553 100644
--- a/foo.txt
+++ b/foo.txt
@@ -1,3 +1,5 @@
 line 1
+line 1.5^M
 line 2
+line 2.5^M
 line 3

假设我现在要从索引中删除line 1.5并保留line 2.5,我将如何使用LibGit2Sharp执行此操作?

这也可以反过来问:如何将文件的一部分添加到索引中?我正在寻找git add -p的某种程序化版本。

1 个答案:

答案 0 :(得分:1)

显然没有简单的方法(理解:LibGit2Sharp-native)这样做。

但这可能是可能的。为什么要删除此特定行?这取决于您的标准,但更简单的方法是简单地编辑文件本身(由git diff --cached foo.txt的结果帮助)。所以git不会进行不必要的修改。