GitRead.Net alternatives and similar packages
Based on the "Git Tools" category.
Alternatively, view GitRead.Net alternatives based on common mentions on social networks and blogs.
-
Gitea
Git with a cup of tea! Painless self-hosted all-in-one software development service, includes Git hosting, code review, team collaboration, package registry and CI/CD -
GitExtensions
Git Extensions is a standalone UI tool for managing git repositories. It also integrates with Windows Explorer and Microsoft Visual Studio (2015/2017/2019). -
Git Credential Manager for Windows
Helps solving issues of credentials, made by Microsoft -
Bonobo Git Server
Bonobo Git Server for Windows is a web application you can install on your IIS and easily manage and connect to your git repositories. Go to homepage for release and more info. -
RepoZ
๐จโ๐ป A zero-conf git repository hub for Windows and macOS with Windows Explorer- & CLI-enhancements -
GitTrends
A iOS and Android app to monitor the Views, Clones and Star history of your GitHub repos -
Husky.Net
Git hooks made easy with Husky.Net internal task runner! ๐ถ It brings the dev-dependency concept to the .NET world! -
Verlite
Automatically version projects via semantic git tags with a focus on being lite, optimized for continuous delivery.
Access the most powerful time series database as a service
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of GitRead.Net or a related project?
README
GitRead.Net
C# library for reading Git repository data
This is a C# library which can be used to explore the commits and files which exist in a local Git repository. This library targets .Net Standard so works with .NET Framework 4.6.1 or later and .NET Core 2.0 or later.
Windows | Linux | Mac |
---|---|---|
>= .NET Framework 4.6.1 | >= .NET Core 2.0 | >= .NET Core 2.0 |
>= .NET Core 2.0 |
The library is available via Nuget at https://www.nuget.org/packages/GitRead.Net
Simple Example
> RepositoryAnalyzer repositoryAnalyzer = new RepositoryAnalyzer(@"C:\src\Newtonsoft.Json\.git");
> Commit commit = repositoryAnalyzer.GetCommits().Last();
> Console.WriteLine(commit.Hash);
e65bc2becd3ded759b5d5ca42c7d28a631cfc06d
> Console.WriteLine(commit.Author);
JamesNK
> Console.WriteLine(commit.Timestamp);
08/09/2007 08:59:38
Getting line count of all files as they existed at a specific commit
> RepositoryAnalyzer repositoryAnalyzer = new RepositoryAnalyzer(@"C:\src\csharplang");
> foreach(FileLineCount lineCount in repositoryAnalyzer.GetFileLineCounts("7981ea1fb4d89571fd41e3b75f7c9f7fc178e837"))
. {
. Console.WriteLine(lineCount);
. }
README.md 10
design-notes\Notes-2016-11-16.md 74
design-notes\csharp-language-design-notes-2017.md 0
proposals\async-streams.md 0
proposals\nullable-reference-types.md 126
spec\spec.md 0
Getting the details of files added, modified or deleted by a specific commit
> RepositoryAnalyzer repositoryAnalyzer = new RepositoryAnalyzer(@"C:\src\csharplang\.git");
> CommitDelta changes = repositoryAnalyzer.GetChanges("ad9e5bca2e2b9240d21ee4cc3aa184610968e9fb");
> Console.WriteLine(changes.Added.Count);
2
> Console.WriteLine(changes.Modified.Count);
4
> Console.WriteLine(changes.Deleted.Count);
0
> foreach (string added in changes.Added.Select(x => x.Path))
. {
. Console.WriteLine(added);
. }
meetings\2017\LDM-2017-06-13.md
meetings\2017\LDM-2017-06-14.md
> foreach (FileChange change in changes.Modified)
. {
. Console.WriteLine($"{change.Path} ({change.NumberOfLinesAdded} lines added) ({change.NumberOfLinesDeleted} lines deleted)");
. }
meetings\2017\LDM-2017-05-17.md (32 lines added) (28 lines deleted)
meetings\2017\LDM-2017-05-26.md (18 lines added) (31 lines deleted)
meetings\2017\LDM-2017-05-31.md (55 lines added) (36 lines deleted)
meetings\2017\README.md (42 lines added) (0 lines deleted)
Getting the history of commits for a specific file
> RepositoryAnalyzer repositoryAnalyzer = new RepositoryAnalyzer(@"C:\src\csharplang");
> string filePath = @"spec\variables.md";
> IReadOnlyList<Commit> commits = repositoryAnalyzer.GetCommitsForOneFilePath(filePath);
> Console.WriteLine(commits.Count);
3
> foreach (Commit commit in commits)
. {
. Console.WriteLine($"On {commit.Timestamp:yyyy-MM-dd} {filePath} was modified by {commit.Author}'s commit with hash {commit.Hash}.");
. }
On 2018-01-25 spec\variables.md was modified by stakx's commit with hash 7f39331672cf8edbda8867de004138e0f711c877.
On 2017-10-13 spec\variables.md was modified by Maira Wenzel's commit with hash 868b881ca5c1f158a91d81f3f73fdb1b729c97bd.
On 2017-02-01 spec\variables.md was modified by Neal Gafter's commit with hash 6027ad5a4ab013f4fb42f5edd2d667d649fe1bd8.