using GitCommands; string filePath = "path/to/file.txt"; GitItemStatus status = GitCommands.GitCommands.GetChangeType(filePath); switch(status) { case GitItemStatus.New: Console.WriteLine("File is new and not yet tracked by Git."); break; case GitItemStatus.Modified: Console.WriteLine("File has been modified since last commit."); break; case GitItemStatus.Deleted: Console.WriteLine("File has been deleted."); break; case GitItemStatus.Renamed: Console.WriteLine("File has been renamed."); break; case GitItemStatus.Untracked: Console.WriteLine("File is not yet tracked by Git."); break; }
using GitCommands; string repoPath = "path/to/git/repo"; GitItemStatus status = GitCommands.GitCommands.GetRepositoryStatus(repoPath); if(status == GitItemStatus.Modified) { Console.WriteLine("Repository has uncommitted changes."); } else if(status == GitItemStatus.Untracked) { Console.WriteLine("Repository has untracked files."); }As seen in the code examples, GitCommands is the package/library used to work with GitItemStatus in C#.