Git Software for Mac

View 30 business solutions
Git Mac Clear Filters
  • MongoDB Atlas runs apps anywhere Icon
    MongoDB Atlas runs apps anywhere

    Deploy in 115+ regions with the modern database for every enterprise.

    MongoDB Atlas gives you the freedom to build and run modern applications anywhere—across AWS, Azure, and Google Cloud. With global availability in over 115 regions, Atlas lets you deploy close to your users, meet compliance needs, and scale with confidence across any geography.
    Start Free
  • 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
  • 1
    Jujutsu

    Jujutsu

    A Git-compatible DVCS that is both simple and powerful

    Jujutsu (JJ VCS) is a modern, Git-compatible version control system designed to simplify and improve how developers manage code changes. It offers a clean and intuitive workflow that works well for both individual developers and large teams with complex histories. Jujutsu separates its user interface from its storage backend, allowing it to use Git repositories while rethinking the developer experience. The system treats the working copy as a real commit, removing the need for staging areas or stashes. Jujutsu records conflicts as first-class objects, making conflict resolution more flexible and reliable. It also maintains a complete operation log, allowing users to undo almost any action. Jujutsu aims to deliver powerful history rewriting and rebasing features without the complexity commonly associated with traditional tools.
    Downloads: 6 This Week
    Last Update:
    See Project
  • 2
    Lefthook

    Lefthook

    Fast and powerful Git hooks manager for any type of projects

    Meet Lefthook, the fastest polyglot Git hooks manager out there, and make sure not a single line of unruly code makes it into production. See how easy it is to install Lefthook (recently adopted by Discourse, Logux, and Openstax) for most common frontend and backend environments and ensure all your team’s developers can rely on a single flexible tool. Also, it has emojis. Fast and powerful Git hooks manager for Node.js, Ruby or any other type of projects. Fast. It is written in Go. Can run commands in parallel. Powerful. It allows to control execution and files you pass to your commands. Simple. It is single dependency-free binary which can work in any environment. Lefthook is easy to use. Once you configure and setup you can forget that it even exists and rely on the magic underneath.
    Downloads: 6 This Week
    Last Update:
    See Project
  • 3
    PicX

    PicX

    GitHub API

    An image bed management tool with CDN acceleration function developed based on GitHub API. No need to download and install, use it online on the web page! free! Stablize! Convenient! Extremely fast! Writing articles with static blogs such as Hexo, VuePress, Hugo, etc., I don’t know where to save the pictures. Deliberately spending money to rent a cloud server to host pictures, it is too expensive and not worth it, and the upload configuration is cumbersome. The link to the favorite picture copied from the Internet will become invalid one day after using it. Using other paid image beds, the speed is slow, the capacity is small, and the time and flow are limited. Looking for a picture bed that is really free, stable, unlimited in capacity, and fast in access speed. So, come and try the PicX picture bed , it is specially made for technical bloggers, whoever uses it will know. Support one- click copying of external links of pictures and one- click conversion of Markdown format.
    Downloads: 6 This Week
    Last Update:
    See Project
  • 4
    Soft Serve

    Soft Serve

    A tasty, self-hostable Git server for the command line

    A tasty, self-hostable Git server for the command line. Configure with git. Create repos on demand with git push. Browse repos, files and commits with an SSH-accessible TUI. TUI mouse support. Print files over SSH with or without syntax highlighting and line numbers. Easy access control. Allow/disallow anonymous access. Add collaborators with SSH public keys. Repos can be public or private. You can also download a binary from the releases page. Packages are available in Alpine, Debian, and RPM formats. Binaries are available for Linux, macOS, and Windows. Soft Serve SSH CLI has the ability to print files and list directories, perform git operations on remote repos, and reload the configuration when necessary. Both git and reload commands need admin access to the server to work. So make sure you have added your key as an admin user, or you’re using anon-access: admin-access in the configuration.
    Downloads: 6 This Week
    Last Update:
    See Project
  • Custom VMs From 1 to 96 vCPUs With 99.95% Uptime Icon
    Custom VMs From 1 to 96 vCPUs With 99.95% Uptime

    General-purpose, compute-optimized, or GPU/TPU-accelerated. Built to your exact specs.

    Live migration and automatic failover keep workloads online through maintenance. One free e2-micro VM every month.
    Start Free
  • 5
    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: 6 This Week
    Last Update:
    See Project
  • 6
    CPM.cmake

    CPM.cmake

    CMake's missing package manager

    CPM.cmake is a cross-platform CMake script that adds dependency management capabilities to CMake. It's built as a thin wrapper around CMake's FetchContent module that adds version control, caching, a simple API and more. Any downloadable project or resource can be added as a version-controlled dependency though CPM, it is not necessary to modify or package anything. Projects using modern CMake are automatically configured and their targets can be used immediately. For everything else, the targets can be created manually after the dependency has been downloaded. After CPM.cmake has been added to your project, the function CPMAddPackage can be used to fetch and configure a dependency. Afterwards, any targets defined in the dependency can be used directly. CPMAddPackage takes the following named parameters. The origin may be specified by a GIT_REPOSITORY, but other sources, such as direct URLs, are also supported.
    Downloads: 5 This Week
    Last Update:
    See Project
  • 7
    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: 5 This Week
    Last Update:
    See Project
  • 8

    Husky

    Git hooks made easy

    Husky is a tool that makes handling Git hooks a lot easier, and lets you run the scripts you want at those stages. It works by including an object right within your package.json file. This then configures Husky so that it runs the scripts you specify. After that, it's Husky's responsibility to manage at which point in the Git lifecycle your scripts will run. Husky helps to improve your commits, lets you run tests, lint code and more when you commit or push. It is very lightweight, with zero dependencies and is capable of supporting all Git hooks.
    Downloads: 5 This Week
    Last Update:
    See Project
  • 9
    QtPass

    QtPass

    QtPass is a multi-platform GUI for pass, the standard unix password

    QtPass is part of the pass ecosystem. This means you are not stuck with QtPass, you can use the same password store with many clients. Password management should be simple and follow Unix philosophy. With pass, each password lives inside of a gpg encrypted file whose filename is the title of the website or resource that requires the password. These encrypted files may be organized into meaningful folder hierarchies, copied from computer to computer, and, in general, manipulated using standard command line file management utilities. Contrary to many Free, Libre and OpenSource password managers, pass and by extension QtPass are not bound to one user or device. Since we are based on GnuPG we have multi-key, multi recipient encryption out of the box. The use of external encryption devices like OpenPGP or x509/CMS based smartcards or USB tokens and per-folder ACL makes it easy to grant or take away privileges from users.
    Downloads: 5 This Week
    Last Update:
    See Project
  • $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
  • 10
    Talisman

    Talisman

    Talisman validates the outgoing changeset

    Talisman is a tool that installs a hook to your repository to ensure that potential secrets or sensitive information do not leave the developer's workstation. It validates the outgoing changeset for things that look suspicious - such as potential SSH keys, authorization tokens, private keys etc. Talisman can also be used as a repository history scanner to detect secrets that have already been checked in, so that you can take an informed decision to safeguard secrets. We recommend installing Talisman as a pre-commit git hook template, as that will cause Talisman to be present, not only in your existing git repositories, but also in any new repository that you 'init' or 'clone'. Installation of Talisman globally does not clobber pre-existing hooks on repositories. If the installation script finds any existing hooks, it will only indicate so on the console. After the installation is successful, Talisman will run checks for obvious secrets automatically before each commit or push.
    Downloads: 5 This Week
    Last Update:
    See Project
  • 11
    git-cz

    git-cz

    Semantic Git commits

    git-cz is a command-line tool designed to guide developers in writing structured, conventional commits. Rather than manually typing commit messages, this tool prompts you to select commit types, scopes, and write descriptions according to a defined format. It integrates with the popular commitizen ecosystem so that when you run npx git-cz or similar, you are prompted through a workflow instead of free-form message. The project emphasises consistency and readability in commit history, helping teams enforce semantic or conventional commit message formats. It supports custom configuration (for example via a changelog.config.js file) so you can adapt the prompts or types to your project’s conventions. Because it is open source (licensed under Unlicense) it can be freely integrated within CI pipelines or commit hooks to standardise message formats.
    Downloads: 5 This Week
    Last Update:
    See Project
  • 12
    git-flow

    git-flow

    Git extensions to provide high-level repository operations

    git-flow is the original set of Git extensions that implements Vincent Driessen’s well-known branching model via a convenient command-line interface. Instead of memorizing the choreography, you run high-level commands like git flow init, git flow feature start/finish, git flow release start/finish, and git flow hotfix to create, merge, and tag branches following a consistent structure. The model separates long-lived master (or main) and develop branches, encourages topic branches for features, and formalizes release and hotfix flows, which helps teams coordinate work and control what reaches production. The scripts enforce naming conventions, guide merges in the right direction, and add version tags to releases so you keep a clean, auditable history. Teams often adopt git-flow to make branching and release management predictable, especially when multiple developers are shipping features and bug fixes in parallel.
    Downloads: 5 This Week
    Last Update:
    See Project
  • 13
    git-sketch-plugin

    git-sketch-plugin

    A Git client generating pretty diffs built right into Sketch

    A Git client generating pretty diffs built right into Sketch. A Git client built right into Sketch. The plugin really improves the review process by exporting an image for every part of the design. Every member of the team can quickly see what the next iteration will change through Github’s interface. Each step of the design process is now documented. Newcomers are able to understand how we ended up with the current iteration and why we went with some options and not others. Create a new branch when you start working on a new feature. Work normally on your design. Save the file. Commit the changes with a meaningful message describing them. The plugin will extract the artboards in your file in order to show the differences easily. Push your changes to the remote. Create a pull request from your branch to the master branch. Voila. Your co-workers can review the changes, comment on them and approve them. Once approved, merge the pull request.
    Downloads: 5 This Week
    Last Update:
    See Project
  • 14
    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: 5 This Week
    Last Update:
    See Project
  • 15
    lint-staged

    lint-staged

    Run linters on git staged files

    Run linters against staged git files and don't let anything slip into your code base! Linting makes more sense when run before committing your code. By doing so you can ensure no errors go into the repository and enforce code style. But running a lint process on a whole project is slow, and linting results can be irrelevant. Ultimately you only want to lint files that will be committed. This project contains a script that will run arbitrary shell tasks with a list of staged files as an argument, filtered by a specified glob pattern. Linter commands work on a subset of all staged files, defined by a glob pattern. lint-staged uses micromatch for matching files. The concept of lint-staged is to run configured linter tasks (or other tasks) on files that are staged in git. lint-staged will always pass a list of all staged files to the task, and ignoring any files should be configured in the task itself.
    Downloads: 5 This Week
    Last Update:
    See Project
  • 16
    Blamer.el

    Blamer.el

    A git blame plugin for emacs inspired by VS Code's GitLens plugin

    A git blame plugin for emacs inspired by VS Code’s GitLens plugin and Vim plugin.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 17
    Checkout v7

    Checkout v7

    Action for checking out a repo

    Checkout v7 is the official GitHub Action for checking out repository code inside a GitHub Actions workflow. It places the selected repository under the workflow workspace so build, test, lint, release, or deployment steps can access the files. By default, it fetches only one commit for the ref or SHA that triggered the workflow, but it can also fetch full branch and tag history. The action supports checking out different repositories, private repositories, pull request commits, submodules, Git LFS files, sparse paths, and custom paths. It can use Git credentials, SSH keys, safe directory configuration, and GitHub Enterprise Server URLs. Recent versions also focus on stronger credential handling and safer behavior around fork pull request code in trusted workflow contexts.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 18
    Git Large File Storage

    Git Large File Storage

    Git extension for versioning large files

    An open source Git extension for versioning large files. Git Large File Storage (LFS) replaces large files such as audio samples, videos, datasets, and graphics with text pointers inside Git, while storing the file contents on a remote server like GitHub.com or GitHub Enterprise. Download and install the Git command line extension. Once downloaded and installed, set up Git LFS for your user account. In each Git repository where you want to use Git LFS, select the file types you'd like Git LFS to manage (or directly edit your .gitattributes). You can configure additional file extensions at any time. Host more in your Git repositories. External file storage makes it easy to keep your repository at a manageable size. Download less data. This means faster cloning and fetching from repositories that deal with large files. Work like you always do on Git, no need for additional commands, secondary storage systems, or toolsets.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 19
    Git Town

    Git Town

    Generic, high-level Git workflow support!

    Git Town adds Git commands that make software development more efficient by keeping Git branches better in sync with each other. This reduces merge conflicts and the number of Git commands you need to run. Git is a flexible source code management system. The Git CLI (correctly) supports all possible ways of using Git equally well. It provides basic commands out of which Git users can implement their particular Git workflows. This generic design can make using the Git CLI repetitive in real life. As the screencast above demonstrates, typical development activities like creating, synchronizing, or shipping a feature branch require running multiple, sometimes dozens of Git commands. Git Town adds a high-level layer of Git commands for these activities. These commands are compatible with most common branching models like GitHub Flow, Git Flow, GitLab Flow, trunk-based development and even committing straight into the main branch. See also this external review.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 20
    Gitmal

    Gitmal

    A static page generator for repos

    Gitmal is a static page generator that turns the contents of a Git repository into a clean, navigable HTML website, making it easier to share or showcase code outside of traditional Git hosting platforms. It reads repository metadata including files, commits, branches, and markdown, and produces a fully static set of pages with syntax-highlighted code, commit history, branch lists, and rendered documentation, so viewers can explore projects as if browsing a lightweight curated site. Designed for simplicity and performance, gitmal can be run locally or via a Docker container, and works across repositories of any size, producing fully self-contained output ready to be deployed to static web hosts. It supports themes and custom styles, allowing creators to personalize the look and feel of the generated site. For developers who want to archive, document, or display their code in a non-interactive context, gitmal provides a straightforward and configurable solution.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 21
    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: 4 This Week
    Last Update:
    See Project
  • 22
    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: 4 This Week
    Last Update:
    See Project
  • 23
    gitstatus

    gitstatus

    Git status for Bash and Zsh prompt

    gitstatus is a 10x faster alternative to git status and git describe. Its primary use case is to enable fast git prompt in interactive shells. Heavy lifting is done by gitstatusd -- a custom binary written in C++. It comes with Zsh and Bash bindings for integration with shell. The easiest way to take advantage of gitstatus from Zsh is to use a theme that's already integrated with it. For example, Powerlevel10k is a flexible and fast theme with first-class gitstatus integration. If you install Powerlevel10k, you don't need to install gitstatus. This will give you a basic yet functional prompt with git status in it. It's over 10x faster than any alternative that can give you comparable prompt. In order to customize it, set PROMPT and/or RPROMPT at the end of ~/.zshrc after sourcing gitstatus.prompt.zsh. Insert ${GITSTATUS_PROMPT} where you want git status to go.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 24
    jupyterlab-git

    jupyterlab-git

    A Git extension for JupyterLab

    A JupyterLab extension for version control using Git. To see the extension in action, open the example notebook included in the Binder demo. Open the Git extension from the Git tab on the left panel. This extension tries to handle credentials for HTTP(S) connections (if you don't have set up a credential manager). But not for other SSH connections. The extension can cache temporarily (by default for an hour) credentials. To use the caching, you will need to check the option Save my login temporarily in the dialog asking your credentials. Once installed, extension behavior can be modified via the following settings which can be set in JupyterLab's advanced settings editor. Set post git init actions. It is possible to provide a list of commands to be executed in a folder after it is initialized as Git repository. Set path patterns to exclude from this extension. You can use wildcard and interrogation mark for respectively everything or any single character in the pattern.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 25
    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: 4 This Week
    Last Update:
    See Project