Riverside.CommitSharp.Abstractions 1.0.0

Prefix Reserved
dotnet add package Riverside.CommitSharp.Abstractions --version 1.0.0
                    
NuGet\Install-Package Riverside.CommitSharp.Abstractions -Version 1.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Riverside.CommitSharp.Abstractions" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Riverside.CommitSharp.Abstractions" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Riverside.CommitSharp.Abstractions" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Riverside.CommitSharp.Abstractions --version 1.0.0
                    
#r "nuget: Riverside.CommitSharp.Abstractions, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Riverside.CommitSharp.Abstractions@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Riverside.CommitSharp.Abstractions&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Riverside.CommitSharp.Abstractions&version=1.0.0
                    
Install as a Cake Tool

💫 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.

  1. Instantiate the Git class with the path to your repository:

    using Riverside.CommitSharp;
    
    var git = new Git("path/to/your/repo");
    
  2. 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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETStandard 2.0

    • No dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Riverside.CommitSharp.Abstractions:

Package Downloads
Riverside.CommitSharp

CommitSharp is a library for interacting with Git via the CLI.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 156 6/2/2025