我想得到受特定提交影响的文件和目录的列表。获取提交本身没有问题,但我不知道如何获取受影响的文件和目录。
为了清楚我需要这样的东西:
文件x-已删除
文件y-已添加
文件z-已修改

最佳答案

Git是基于快照的;每次提交都包含一个完整的文件列表及其状态。任何“受影响”文件的概念都需要另一个提交来进行比较。这通常是针对它的父母的,这似乎就是你要问的。通过使用git_diff函数族,您可以找出两个提交(或者更确切地说,它们的树)之间的不同文件。
您可以在libgit2的examples listing中找到这样做的示例。还有一个更一般的annotated diff example。第二个链接还显示了如何列出单个文件及其内容(如果需要)。检查reference以获取使用diff的可用函数的完整列表。
请注意,这不会让您自己受影响的directorires,因为Git不跟踪目录,而只跟踪文件。

关于c - 获取受提交影响的文件和目录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32674548/

10-15 03:35
查看更多