Riverside.CommitSharp
1.0.0
Prefix Reserved
dotnet add package Riverside.CommitSharp --version 1.0.0
NuGet\Install-Package Riverside.CommitSharp -Version 1.0.0
<PackageReference Include="Riverside.CommitSharp" Version="1.0.0" />
<PackageVersion Include="Riverside.CommitSharp" Version="1.0.0" />
<PackageReference Include="Riverside.CommitSharp" />
paket add Riverside.CommitSharp --version 1.0.0
#r "nuget: Riverside.CommitSharp, 1.0.0"
#:package Riverside.CommitSharp@1.0.0
#addin nuget:?package=Riverside.CommitSharp&version=1.0.0
#tool nuget:?package=Riverside.CommitSharp&version=1.0.0
💫 CommitSharp
CommitSharp is a .NET Standard 2.0 library providing a wrapper around source control (version control system) commands. It offers a structured, object-oriented way to interact with repositories, making it easy to integrate VCS operations into your .NET applications. It offers better integration than using a native implementation such as LibGit2Sharp as CommitSharp is designed to be a thin wrapper around the native VCS CLI commands, providing a more consistent and extensible API, and a far more reliable one.
✨ Features
CommitSharp provides a comprehensive set of operations in its abstraction, including but not limited to:
- Repository Management:
Clone
,Init
- Basic Operations:
Add
,Commit
,Push
,Pull
,Status
,Log
- Branching & Merging:
Branch
,DeleteBranch
,RenameBranch
,Checkout
,Merge
,Rebase
- Tagging:
Tag
,ListTags
- Stashing:
Stash
,StashApply
- Remote Management:
ListRemotes
,AddRemote
,RemoveRemote
- History & Inspection:
Reflog
,Bisect
,Blame
,FileHistory
,Describe
- Submodules:
AddSubmodule
,UpdateSubmodules
- Advanced Operations:
Archive
,CherryPick
,Clean
,Prune
,Diff
,DiffCached
,DiffHead
,DiffCommits
🚀 Getting Started
Prerequisites
- .NET Standard 2.0 compatible project
- Your chosen VCS provider's CLI installed and available in your system's PATH.
Installation
Install-Package Riverside.CommitSharp
(Or using the .NET CLI)
dotnet add package Riverside.CommitSharp
Basic Usage
CommitSharp
provides a simple API to interact with Git repositories.
It also exposes APIs for interacting with other version control systems, although currently it is primarily focused on Git.
Instantiate the
Git
class with the path to your repository:using Riverside.CommitSharp; var git = new Git("path/to/your/repo");
Call Git commands as methods:
// Get repository status string status = git.Status(); Console.WriteLine(status); // Add all files git.Add("."); // Commit changes git.Commit("My awesome commit message"); // Push to remote git.Push("origin", "main");
🏛️ Abstractions
CommitSharp is designed with extensibility in mind. It uses a set of interfaces to define Git operations, allowing for potential future support for other Version Control Systems (VCS) or custom implementations.
The core interface is IVersionControl
, which defines common VCS operations.
The Riverside.CommitSharp.Abstractions
namespace contains several interfaces that represent different aspects of version control operations, such as IBlamable
, IBranchRebasable
, ICherryPickable
, and more.
The Git
class implements these interfaces, providing a concrete implementation for Git.
🛠️ How It Works
CommitSharp executes Git commands by spawning a git
process with the appropriate arguments and capturing its standard output and error streams.
The working directory for each command is set to the repository path passed into the Git
constructor.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Riverside.CommitSharp.Abstractions (>= 1.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
1.0.0 | 136 | 6/2/2025 |