Git Software for Windows

View 41 business solutions
  • Ship Agents Faster Icon
    Ship Agents Faster

    Transform your applications and workflows into powerful agentic systems at global scale.

    Gemini Enterprise Agent Platform lets you rapidly build, scale, govern and optimize production-ready agents grounded in your organization's data. The platform enables developers to build custom or pre-built agents for virtually any use case. New customers get $300 in free credits.
    Start Free
  • $300 Free Credits to Build on Google Cloud Icon
    $300 Free Credits to Build on Google Cloud

    New customers can spin up VMs, build with AI, and query data at no cost.

    Put your $300 in credit toward real workloads, then keep building with free monthly usage for 20+ products. No commitment and no charge until you upgrade.
    Start Free
  • 1
    actions/github-script

    actions/github-script

    Write workflows scripting the GitHub API in JavaScript

    This action makes it easy to quickly write a script in your workflow that uses the GitHub API and the workflow run context. To use this action, provide an input named script that contains the body of an asynchronous function call. Since the script is just a function body, these values will already be defined, so you don't have to import them. All scripts are now run with Node 16 instead of Node 12 and are affected by any breaking changes between Node 12 and 16. By default, the JSON-encoded return value of the function is set as the "result" in the output of a github-script step. For some workflows, string encoding is preferred. This option can be set using the result-encoding input. By default, requests made with the github instance will not be retried. You can configure this with the retries option.
    Downloads: 5 This Week
    Last Update:
    See Project
  • 2
    ohmyposh.dev

    ohmyposh.dev

    A prompt theme engine for any shell

    Oh My Posh enables you to use the full-color set of your terminal by using colors to define and render the prompt. Easily adjust existing themes or create your own. From standard segments all the way to custom implementations. No matter which shell you're using, or even how many, you can carry the configuration from one shell and/or machine to another for the same prompt everywhere you work. What started as the offspring of oh-my-posh2 for PowerShell resulted in a cross platform, highly customizable and extensible prompt theme engine. After 4 years of working on oh-my-posh, a modern and more efficient tool was needed to suit my personal needs. When you look at prompts like Agnoster or Paradox, you notice they usually consist of a few building blocks which contain one or more segments that display some sort of information. The configuration of Oh My Posh works exactly like that. Blocks are a combination of one or more segments.
    Downloads: 5 This Week
    Last Update:
    See Project
  • 3
    Dolt

    Dolt

    Dolt, it's Git for data

    Dolt is a SQL database that you can fork, clone, branch, merge, push and pull just like a git repository. Connect to Dolt just like any MySQL database to run queries or update the data using SQL commands. Use the command line interface to import CSV files, commit your changes, push them to a remote, or merge your teammate's changes. All the commands you know for Git work exactly the same for Dolt. Git versions files, Dolt versions tables. It's like Git and MySQL had a baby. We also built DoltHub, a place to share Dolt databases. We host public data for free. If you want to host your own version of DoltHub, we have DoltLab. If you want us to run a Dolt server for you, we have Hosted Dolt. MySQL comes with a MySQL server called mysqld and a MySQL client called mysql. You're only interested in the client. After following the instructions from MySQL's documentation, make sure you have a copy of the mysql client on your path.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 4
    GitBucket

    GitBucket

    A Git platform powered by Scala

    A Git platform powered by Scala with easy installation, high extensibility & GitHub API compatibility. GitBucket is a Git web platform powered by Scala offering, easy installation, intuitive UI, high extensibility by plugins, API compatibility with GitHub. You can also deploy gitbucket.war to a servlet container which supports Servlet 3.0 (like Jetty, Tomcat, JBoss, etc). To upgrade GitBucket, replace gitbucket.war with the new version, after stopping GitBucket. All GitBucket data is stored in HOME/.gitbucket by default. So if you want to back up GitBucket's data, copy the directory to the backup location. If you want to try the development version of GitBucket, or want to contribute to the project, please see the Developer's Guide. It provides instructions on building from source and on setting up an IDE for debugging. It also contains documentation of the core concepts used within the project.
    Downloads: 4 This Week
    Last Update:
    See Project
  • Veeam Data Platform v13.1 - Get Your Free Trial Icon
    Veeam Data Platform v13.1 - Get Your Free Trial

    Secure by design, portable by default. Recover clean, fast, anywhere. Start a free trial.

    Try Veeam Data Platform today. Experience the unified platform that's secure by design, portable by default, and proven to recover clean, fast, and anywhere.
    Try it Free
  • 5
    asdf

    asdf

    Extendable version manager with support for Ruby, Node.js, Elixir, etc

    Manage multiple runtime versions with a single CLI tool. Manage each of your project runtimes with a single CLI tool and command interface. asdf is a CLI tool that can manage multiple language runtime versions on a per-project basis. It is like gvm, nvm, rbenv & pyenv (and more) all in one! Simply install your language's plugin! Large ecosystem of existing runtimes & tools. Simple API to add support for new tools as you need! Support for existing config files .nvmrc, .node-versions, .ruby-version for smooth migration! .tool-versions to manage all your tools, runtimes, and their versions in a single, sharable place. Supports Bash, ZSH, Fish & Elvish with completions available. Provides a GitHub Action to install and utilize your .tool-versions in your CI/CD workflows.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 6
    libgit2

    libgit2

    A cross-platform, portable, linkable Git implementation library

    libgit2 is a portable, pure C implementation of the Git core methods provided as a re-entrant linkable library with a solid API, allowing you to write native speed custom Git applications in any language which supports C bindings. Libgit2 is developed with CMake, and this is be the easiest way to build a binary from the source. The CMake build system provides lots of options to configure the libgit2 build for your particular needs. It’s highly recommended that you build libgit2 as a static library for Xcode projects to simplify distribution significantly. libgit2 is used for powering Git GUI clients, such as gmaster and GitKraken and on Git hosting providers such as GitLab, Azure, GitHub, DevOps, among others. By clicking "merge pull request", we perform the merge. It is licensed under the GPLv2 license, so you can link it in its unmodified state with any type of software without releasing its source code.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 7
    Gitinspector

    Gitinspector

    The statistical analysis tool for git repositories

    Gitinspector is a statistical analysis tool for git repositories. The default analysis shows general statistics per author, which can be complemented with a timeline analysis that shows the workload and activity of each author. Under normal operation, it filters the results to only show statistics about a number of given extensions and by default only includes source files in the statistical analysis. This tool was originally written to help fetch repository statistics from student projects in the course Object-oriented Programming Project (TDA367/DIT211) at Chalmers University of Technology and Gothenburg University. Shows cumulative work by each author in history. Filters results by an extension (default: java,c,cc,cpp,h,hh,hpp,py,glsl,rb,js, SQL). Can display a statistical timeline analysis. Scans for all filetypes (by extension) found in the repository. Multi-threaded; uses multiple instances of git to speed up analysis when possible.
    Downloads: 3 This Week
    Last Update:
    See Project
  • 8
    git-tfs

    git-tfs

    A Git/TFS bridge, similar to git-svn

    git-tfs is a two-way bridge between TFS (Team Foundation Server) and git, similar to git-svn. It fetches TFS commits into a git repository, and lets you push your updates back to TFS. git-tfs is a two-way bridge between TFS and git, similar to git-svn. If the build fails to build some GitTfs.Vs201x projects, just unload in Visual Studio all the projects you are not interested in to be able to build and use your own version. You could also install, the Team Foundation Server Object Model for Tfs 2012 (chocolatey) and Tfs 2013 (chocolatey).
    Downloads: 3 This Week
    Last Update:
    See Project
  • 9
    Git Subtree Splitter

    Git Subtree Splitter

    Split a repository to read-only standalone repositories

    Split a repository to read-only standalone repositories. splitsh-lite replaces the subtree split Git built-in command to make splitting a monolithic repository to read-only standalone repositories easy and fast. Both strategies work well and both have drawbacks as well. splitsh helps use both strategies by providing tools that automatically synchronize a monolithic repository to standalone repositories in real-time. splitsh-lite is a sub-project that provides a faster implementation of the git subtree split command, which helps create standalone repositories for one or more sub-directories of a main repository. If you want to learn more about monorepo vs manyrepos, watch this 4-minute lightning talk I gave at dotScale (or read the slides)... or watch the longer version from DrupalCon. "The Monorepo - Storing your source code has never been so much fun" is also a great resource.
    Downloads: 2 This Week
    Last Update:
    See Project
  • Cut Data Warehouse Costs by 54% Icon
    Cut Data Warehouse Costs by 54%

    Easily migrate from Snowflake, Redshift, or Databricks with free tools.

    BigQuery delivers 54% lower TCO with exabyte scale and flexible pricing. Free migration tools handle the SQL translation automatically.
    Start Free
  • 10
    Git Updater

    Git Updater

    This WP plugin will update GitHub, Bitbucket, GitLab, etc.

    This plugin was originally designed to simply update any GitHub-hosted WordPress plugin or theme. Your plugin or theme must contain a header in the style.css header or in the plugin's header denoting the location on GitHub. API plugins for Bitbucket, GitLab, Gitea, and Gist are available. API plugins are available for a one-click install from the Add-Ons tab. This update reincorporates all functionality into the Git Updater plugin and splits out the API components into individual API plugins. There is a 14-day free trial and a 30-day no questions asked money-back guarantee. Programming is a great creative outlet. As the Git Updater family of products has grown more developers are using it in their workflow and support requests are increasing. I made a decision to rebrand and monetize it.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 11
    GitSavvy

    GitSavvy

    Full git and GitHub integration with Sublime Text

    Sublime Text plugin providing probably all git has to offer. Sublime Text 2 is not supported. Also, GitSavvy takes advantage of modern features of Sublime Text (like annotations). For the best experience, use the latest Sublime Text dev build. The documentation is probably outdated. Yeah it's sad but you can contribute and I will eventually get onto it but every special view has help available, just press ?. GitSavvy requires Git versions at or greater than 2.18.0. basic Git functionality; init, add, commit, amend, checkout, pull, push, etc. Rebasing just from that "Repo History". Edit a commit, reword a commit, autosquash commits, apply a fixup, whatever... the [r] menu. git diff view, allowing user to stage, unstage and reset (discard) files, hunks or individual lines. GitHub-style blame view, showing hunk metadata and ability to view the commit that made the change.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 12
    Java API for GitHub

    Java API for GitHub

    Java API for GitHub

    This library defines an object oriented representation of the GitHub API. By "object oriented" we mean there are classes that correspond to the domain model of GitHub (such as GHUser and GHRepository), operations that act on them as defined as methods (such as GHUser.follow()), and those object references are used in favor of using string handle (such as GHUser.isMemberOf(GHOrganization) instead of GHUser.isMemberOf(String)) The library supports both github.com and GitHub Enterprise. Most of the GitHub APIs are covered, although there are some corners that are still not yet implemented. The library allows connecting to GitHub via several different authentication mechanisms. This library defines a common convention so that applications using this library will look at a consistent location. In this convention, the library looks at ~/.github property file. The content of the files depends on the way you want this library to authenticate as shown.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 13
    PHP GitHub API

    PHP GitHub API

    A simple PHP GitHub API client, Object Oriented, tested and documented

    A simple PHP GitHub API client, Object Oriented, tested and documented. Uses GitHub API v3 & supports GitHub API v4. The object API (v3) is very similar to the RESTful API. Object Oriented wrapper for GitHub API, written with PHP. Light and fast thanks to lazy loading of API classes. Extensively tested and documented. We are decoupled from any HTTP messaging client with help by HTTPlug. To integrate this library in laravel Graham Campbell created graham-campbell/github. See the installation instructions to get started in laravel.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 14
    PyGitHub

    PyGitHub

    Typed interactions with the GitHub API v3

    PyGitHub is a Python library to access the GitHub REST API. This library enables you to manage GitHub resources such as repositories, user profiles, and organizations in your Python applications. PyGithub is a Python library to use the Github API v3. With it, you can manage your Github resources (repositories, user profiles, organizations, etc.) from Python scripts. Should you have any question, any remark, or if you find a bug, or if there is something you can do with the API but not with PyGithub, please open an issue.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 15
    git absorb

    git absorb

    git commit --fixup, but automatic

    This is a port of Facebook's hg absorb. Facebook demoed hg absorb which is probably the coolest workflow enhancement I've seen to version control in years. Essentially, when your working directory has uncommitted changes on top of draft changesets, you can run hg absorb and the uncommitted modifications are automagically folded ("absorbed") into the appropriate draft ancestor changesets. This is essentially doing hg histedit + "roll" actions without having to make a commit or manually make history modification rules. The command essentially looks at the lines that were modified, finds a changeset modifying those lines, and amends that changeset to include your uncommitted changes. If the changes can't be made without conflicts, they remain uncommitted. This workflow is insanely useful for things like applying review feedback. You just make file changes, run hg absorb and the mapping of changes to commits sorts itself out. It is magical.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 16
    git-secret

    git-secret

    A bash-tool to store your private data inside a git repository

    There’s a well-known issue with deploying and configuring software on servers: generally, you have to store your private data (such as database passwords, application secret-keys, OAuth secret keys, etc) outside of the git repository. If you do choose to store these secrets unencrypted in your git repo, even if the repository is private, it is a security risk to copy the secrets everywhere you check out your repo. These files are not version controlled. Filenames, locations, and passwords change from time to time, or new information appears, and other information is removed. When secrets are stored separately from your repo, you can not tell for sure which version of the configuration file was used with each commit or deploy. When building the automated deployment system there will be one extra step: download and place these secret-configuration files where they need to be. This also means you have to maintain extra secure servers where all your secrets are stored.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 17
    gitoxide

    gitoxide

    An idiomatic, lean, fast & safe pure Rust implementation of Git

    An idiomatic, lean, fast & safe pure Rust implementation of Git. gix is a command-line interface (CLI) to access git repositories. It's written to optimize the user experience and perform as well or better than the canonical implementation. Furthermore, it provides an easy and safe to use API in the form of various small crates for implementing your own tools in a breeze. Please see 'Development Status' for a listing of all crates and their capabilities. Please note that all functionality comes from the gitoxide-core library, which mirrors these capabilities and itself relies on all git-* crates. Limit the number of threads used in operations that support it. Choose between 'human' and 'JSON' output formats. Display general information about the index itself, with detailed extension information by default and detailed information about the TREE extension. Follow the linked crate name for detailed status.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 18
    gitsigns.nvim

    gitsigns.nvim

    Git integration for buffers

    Super fast git decorations implemented purely in lua/teal. Signs for added, removed, and changed lines. Asynchronous using luv. Navigation between hunks. Stage hunks (with undo). Preview diffs of hunks (with word diff). Customizable (signs, highlights, mappings, etc). Status bar integration. Git blame a specific line using virtual text. Hunk text object. Automatically follow files moved in the index. Live intra-line word diff. Ability to display deleted/changed lines via virtual lines. Support for yadm. Support for detached working trees. If you are running a development version of Neovim (aka master), then breakage may occur if your build is behind latest. Gitsigns provides an on_attach callback which can be used to setup buffer mappings. This plugin is actively developed and by one of the most well regarded vim plugin developers. Gitsigns will only implement features of this plugin if: it is simple, or, the technologies leveraged by Gitsigns (LuaJIT, Libuv, Neovim's API, etc).
    Downloads: 2 This Week
    Last Update:
    See Project
  • 19
    gitwatch

    gitwatch

    Watch a file or folder and automatically commit changes to a git repo

    A bash script to watch a file or folder and commit changes to a git repo. Some programs auto-write their config files, without waiting for you to click an 'Apply' button; or even if there is such a button, most programs offer you no way of going back to an earlier version of your settings. If you commit your config file(s) to a git repo, you can track changes and go back to older versions. This script makes it convenient, to have all changes recorded automatically. If you use an editor that does not have built-in git support (or maybe if you don't like the git support it has), you can use gitwatch to automatically commit your files when you save them, or combine it with the editor's auto-save feature to fully automatically and regularly track your changes. If you have any other uses, or can think of ones, please let us know, and we can add them to this list! gitwatch can be installed from source by simply cloning the repository and putting the shell script into your $PATH.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 20
    maven git commit id plugin

    maven git commit id plugin

    Maven plugin which includes build-time git repository information

    git-commit-id-maven-plugin is a plugin quite similar to Build Number Maven Plugin for example but as the Build Number plugin at the time when I started this plugin only supported CVS and SVN, something had to be done. I had to quickly develop a Git version of such a plugin. For those who don't know the plugin, it basically helps you with the following tasks and answers related questions. The plugin is available from Maven Central (see here), so you don't have to configure any additional repositories to use this plugin. A detailed description of using the plugin is available in the Using the plugin document. All you need to do in the basic setup is to include that plugin definition in your pom.xml. For more advanced users we also prepared a guide to provide a brief overview of the more advanced configurations. Even though this plugin tries to be compatible with every Maven version there are some known limitations with specific versions.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 21
    opam

    opam

    opam is a source-based package manager

    Opam is a source-based package manager for OCaml. It supports multiple simultaneous compiler installations, flexible package constraints, and a Git-friendly development workflow. Opam was created and is maintained by OCamlPro. To get started, checkout the Install and Usage guides. Run ./configure. If you don't have the dependencies installed, this will locally take care of all OCaml dependencies for you (downloading them, unless you used the inclusive archive we provide for each release). This is all you need for installing and using opam, but if you want to use the opam-lib (to work on opam-related tools), you need to link it to installed libraries. It's easier to already have a working opam installation in this case, so you can do it as a second step. If you install on your system (without changing the prefix), you will need to install as root (sudo). As sudo do not propagate environment variables, there wil be some errors.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 22
    pretty-quick

    pretty-quick

    Get Pretty Quick

    Runs Prettier on your changed files. Pre-commit mode. Under this flag only staged files will be formatted, and they will be re-staged after formatting. Partially staged files will not be re-staged after formatting and pretty-quick will exit with a non-zero exit code. The intent is to abort the git commit and allow the user to amend their selective staging to include formatting fixes. When not in staged pre-commit mode, use this flag to compare changes with the specified branch. Defaults to master (git) / default (hg) branch. Do not resolve prettier config when determining which files to format, just use standard set of supported file types & extensions prettier supports. This may be useful if you do not need any customization and see performance issues. Check that files are correctly formatted, but don't format them. This is useful on CI to verify that all changed files in the current branch were correctly formatted.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 23
    simple-git-hooks

    simple-git-hooks

    A simple git hooks manager for small projects

    A simple git hooks manager for small projects. A git hook is a command or script that is going to be run every time you perform a git action, like git commit or git push. If the execution of a git hook fails, then the git action aborts. For example, if you want to run linter on every commit to ensure code quality in your project, then you can create a pre-commit hook that would call npx lint-staged. Check out lint-staged. It works really well with simple-git-hooks. You can look up about git hooks on the Pro Git book. simple-git-hooks works well for small-sized projects when you need quickly set up hooks and forget about it. However, this package requires you to manually apply the changes to git hooks. If you update them often, this is probably not the best choice. Also, this package allows you to set only one command per git hook.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 24
    transcrypt git

    transcrypt git

    transparently encrypt files within a git repository

    A script to configure transparent encryption of sensitive files stored in a Git repository. Files that you choose will be automatically encrypted when you commit them, and automatically decrypted when you check them out. The process will degrade gracefully, so even people without your encryption password can safely commit changes to the repository's non-encrypted files. transcrypt protects your data when it's pushed to remotes that you may not directly control (e.g., GitHub, Dropbox clones, etc.), while still allowing you to work normally on your local working copy. You can conveniently store things like passwords and private keys within your repository and not have to share them with your entire team or complicate your workflow. transcrypt is in the same vein as existing projects like git-crypt and git-encrypt, which follow Git's documentation regarding the use of clean/smudge filters for encryption.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 25
    ungit

    ungit

    A tool to simplify the use of git, on any platform, anywhere

    Git is known for being a versatile distributed source control system that is a staple of many individuals, communities, and even for the City of Chattanooga to crowd source bicycle parking locations. However, it is not known for userfriendliness or easy learning curve. Ungit brings user friendliness to git without sacrificing the versatility of git. Git and github both supports PGP signing. Within Ungit these features can be enabled. Currently, Ungit DOES NOT support GPG authentication! While git allows robust programmatic authentication via credential-helper, I could not find an easy way to do something equivalent with GPG. Therefore, password-less gpg authentication or 3rd party gpg password must be configured when using Ungit to commit with gpg. Ungit will watch git directory recursively upon page view and automatically refresh contents on git operations or changes on files that are not configured to be ignored in .gitignore.
    Downloads: 2 This Week
    Last Update:
    See Project