C# 如何将树尝试添加到提交';什么是树木收藏?
如果我有一个空的存储库,并且我想从中添加、编辑和删除文件,那么我如何使用LibGit2Sharp来实现这一点 我看到每个提交都有一个包含TreeEntry对象的树对象。是否可以添加、编辑和删除这些树?如果是,索引是否会反映出这些更改正在等待并需要进行阶段性更改 谢谢 如果我有一个空的存储库,并且我想从中添加、编辑和删除文件,那么我如何使用LibGit2Sharp来实现这一点 裸存储库是一个“服务器端”存储库,从中获取/拉取更改,并将更新推送到其中 它既没有C# 如何将树尝试添加到提交';什么是树木收藏?,c#,git,libgit2sharp,C#,Git,Libgit2sharp,如果我有一个空的存储库,并且我想从中添加、编辑和删除文件,那么我如何使用LibGit2Sharp来实现这一点 我看到每个提交都有一个包含TreeEntry对象的树对象。是否可以添加、编辑和删除这些树?如果是,索引是否会反映出这些更改正在等待并需要进行阶段性更改 谢谢 如果我有一个空的存储库,并且我想从中添加、编辑和删除文件,那么我如何使用LibGit2Sharp来实现这一点 裸存储库是一个“服务器端”存储库,从中获取/拉取更改,并将更新推送到其中 它既没有工作目录,也没有索引。因此,不能直接添加
工作目录
,也没有索引
。因此,不能直接添加、编辑或删除文件。您应该在一个“标准”存储库(带有一个工作文件夹)中准备提交,然后将提交推送到一个“裸”中央存储库
注意:一些git管道命令和libgit2低级函数允许您绕过这些限制。然而,这是一个有点高级的工具包,您必须准备好深入了解Git内部,以便找到解决方法:)LibGit2Sharp不会公开这些功能
我看到每个提交都有一个包含TreeEntry对象的树对象。是否可以添加、编辑和删除这些树?如果是,索引是否会反映出这些更改正在等待并需要进行阶段性更改
Commit
、树
或Blob
都是只读git对象。您不能将树尝试
添加到树
,也不能修改现有的提交
git提交修饰符(--amend)可能会让人觉得提交已经更新到位。事实并非如此:整个新提交将作为旧提交的父级的子级重新创建。然后将头从旧提交移动到新提交
更新
LibGit2Sharp的版本v0.9.0公开了一些低级操作,这些操作现在允许直接与存储库的对象数据库交互,即使是裸数据库
利用这些特性,可以创建blob、树和提交,而不需要索引或工作目录
因此,现在可以加载现有树,在内存中更新它,然后将其保留回对象数据库中。当然,这将创建一个新的树,前一个树将保持不变
一些演示这些特性的单元测试可以在文件中找到
如果我有一个空的存储库,并且我想从中添加、编辑和删除文件,那么我如何使用LibGit2Sharp来实现这一点
裸存储库是一个“服务器端”存储库,从中获取/拉取更改,并将更新推送到其中
它既没有工作目录
,也没有索引
。因此,不能直接添加、编辑或删除文件。您应该在一个“标准”存储库(带有一个工作文件夹)中准备提交,然后将提交推送到一个“裸”中央存储库
注意:一些git管道命令和libgit2低级函数允许您绕过这些限制。然而,这是一个有点高级的工具包,您必须准备好深入了解Git内部,以便找到解决方法:)LibGit2Sharp不会公开这些功能
我看到每个提交都有一个包含TreeEntry对象的树对象。是否可以添加、编辑和删除这些树?如果是,索引是否会反映出这些更改正在等待并需要进行阶段性更改
Commit
、树
或Blob
都是只读git对象。您不能将树尝试
添加到树
,也不能修改现有的提交
git提交修饰符(--amend)可能会让人觉得提交已经更新到位。事实并非如此:整个新提交将作为旧提交的父级的子级重新创建。然后将头从旧提交移动到新提交
更新
LibGit2Sharp的版本v0.9.0公开了一些低级操作,这些操作现在允许直接与存储库的对象数据库交互,即使是裸数据库
利用这些特性,可以创建blob、树和提交,而不需要索引或工作目录
因此,现在可以加载现有树,在内存中更新它,然后将其保留回对象数据库中。当然,这将创建一个新的树,前一个树将保持不变
演示这些特性的一些单元测试可以在文件中找到。请搜索“计算机科学家的git”以了解DAG(有向无环图)。更改提交、树或对象实际上会创建一个新的提交。你编辑这些东西的想法是错误的。只有当内容发生变化时,您才能创建新的图形。请通过谷歌“计算机科学家的git”了解DAG(有向无环图)。更改提交、树或对象实际上会创建一个新的提交。你编辑这些东西的想法是错误的。仅当内容发生更改时,才能创建新内容