Alternatives to Git logo

Alternatives to Git

GitHub, SVN (Subversion), Bitbucket, Perforce, and Mercurial are the most popular alternatives and competitors to Git.
34K
27.2K
+ 1
6.6K

What is Git and what are its top alternatives?

Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
Git is a tool in the Version Control System category of a tech stack.
Git is an open source tool with 30.6K GitHub stars and 17.7K GitHub forks. Here’s a link to Git's open source repository on GitHub

Git alternatives & related posts

GitHub logo

GitHub

44.3K
35.5K
10K
44.3K
35.5K
+ 1
10K
Powerful collaboration, review, and code management for open source and private development projects
GitHub logo
GitHub
VS
Git logo
Git

related GitHub posts

Tim Abbott
Tim Abbott
Founder at Zulip · | 18 upvotes · 160.1K views
atZulipZulip
GitHub
GitHub
GitLab
GitLab

I have mixed feelings on GitHub as a product and our use of it for the Zulip open source project. On the one hand, I do feel that being on GitHub helps people discover Zulip, because we have enough stars (etc.) that we rank highly among projects on the platform. and there is a definite benefit for lowering barriers to contribution (which is important to us) that GitHub has such a dominant position in terms of what everyone has accounts with.

But even ignoring how one might feel about their new corporate owner (MicroSoft), in a lot of ways GitHub is a bad product for open source projects. Years after the "Dear GitHub" letter, there are still basic gaps in its issue tracker:

  • You can't give someone permission to label/categorize issues without full write access to a project (including ability to merge things to master, post releases, etc.).
  • You can't let anyone with a GitHub account self-assign issues to themselves.
  • Many more similar issues.

It's embarrassing, because I've talked to GitHub product managers at various open source events about these things for 3 years, and they always agree the thing is important, but then nothing ever improves in the Issues product. Maybe the new management at MicroSoft will fix their product management situation, but if not, I imagine we'll eventually do the migration to GitLab.

We have a custom bot project, http://github.com/zulip/zulipbot, to deal with some of these issues where possible, and every other large project we talk to does the same thing, more or less.

See more
Ali Soueidan
Ali Soueidan
Creative Web Developer at Ali Soueidan · | 16 upvotes · 135.6K views
npm
npm
Vue.js
Vue.js
vuex
vuex
JavaScript
JavaScript
Pug
Pug
Sass
Sass
JSON
JSON
Git
Git
GitHub
GitHub
ES6
ES6
Asana
Asana
Adobe Illustrator
Adobe Illustrator
PHP
PHP
Babel
Babel

Application and Data: Since my personal website ( https://alisoueidan.com ) is a SPA I've chosen to use Vue.js, as a framework to create it. After a short skeptical phase I immediately felt in love with the single file component concept! I also used vuex for state management, which makes working with several components, which are communicating with each other even more fun and convenient to use. Of course, using Vue requires using JavaScript as well, since it is the basis of it.

For markup and style, I used Pug and Sass, since they’re the perfect match to me. I love the clean and strict syntax of both of them and even more that their structure is almost similar. Also, both of them come with an expanded functionality such as mixins, loops and so on related to their “siblings” (HTML and CSS). Both of them require nesting and prevent untidy code, which can be a huge advantage when working in teams. I used JSON to store data (since the data quantity on my website is moderate) – JSON works also good in combo with Pug, using for loops, based on the JSON Objects for example.

To send my contact form I used PHP, since sending emails using PHP is still relatively convenient, simple and easy done.

DevOps: Of course, I used Git to do my version management (which I even do in smaller projects like my website just have an additional backup of my code). On top of that I used GitHub since it now supports private repository for free accounts (which I am using for my own). I use Babel to use ES6 functionality such as arrow functions and so on, and still don’t losing cross browser compatibility.

Side note: I used npm for package management. 🎉

*Business Tools: * I use Asana to organize my project. This is a big advantage to me, even if I work alone, since “private” projects can get interrupted for some time. By using Asana I still know (even after month of not touching a project) what I’ve done, on which task I was at last working on and what still is to do. Working in Teams (for enterprise I’d take on Jira instead) of course Asana is a Tool which I really love to use as well. All the graphics on my website are SVG which I have created with Adobe Illustrator and adjusted within the SVG code or by using JavaScript or CSS (SASS).

See more
SVN (Subversion) logo

SVN (Subversion)

547
382
32
547
382
+ 1
32
Enterprise-class centralized version control for the masses
SVN (Subversion) logo
SVN (Subversion)
VS
Git logo
Git

related SVN (Subversion) posts

Visual Studio Code
Visual Studio Code
GitHub
GitHub
Linux
Linux
JavaScript
JavaScript
Swift
Swift
Java
Java
PHP
PHP
Python
Python
XML
XML
JSON
JSON
Git
Git
SVN (Subversion)
SVN (Subversion)

I use Visual Studio Code because at this time is a mature software and I can do practically everything using it.

  • It's free and open source: The project is hosted on GitHub and it’s free to download, fork, modify and contribute to the project.

  • Multi-platform: You can download binaries for different platforms, included Windows (x64), MacOS and Linux (.rpm and .deb packages)

  • LightWeight: It runs smoothly in different devices. It has an average memory and CPU usage. Starts almost immediately and it’s very stable.

  • Extended language support: Supports by default the majority of the most used languages and syntax like JavaScript, HTML, C#, Swift, Java, PHP, Python and others. Also, VS Code supports different file types associated to projects like .ini, .properties, XML and JSON files.

  • Integrated tools: Includes an integrated terminal, debugger, problem list and console output inspector. The project navigator sidebar is simple and powerful: you can manage your files and folders with ease. The command palette helps you find commands by text. The search widget has a powerful auto-complete feature to search and find your files.

  • Extensible and configurable: There are many extensions available for every language supported, including syntax highlighters, IntelliSense and code completion, and debuggers. There are also extension to manage application configuration and architecture like Docker and Jenkins.

  • Integrated with Git: You can visually manage your project repositories, pull, commit and push your changes, and easy conflict resolution.( there is support for SVN (Subversion) users by plugin)

See more
rishig
rishig
Head of Product at Zulip · | 4 upvotes · 23.9K views
atZulipZulip
Git
Git
SVN (Subversion)
SVN (Subversion)

I use Git instead of SVN (Subversion) because it allows us to scale our development team. At any given time, the Zulip open source project has hundreds of open pull requests from tens of contributors, each in various stages of the pipeline. Git's workflow makes it very easy to context switch between different feature branches.

See more

related Bitbucket posts

Michael Kelly
Michael Kelly
Senior Software Engineer at StackShare · | 14 upvotes · 195.2K views
atACK FoundryACK Foundry
GitLab
GitLab
GitHub
GitHub
GitLab CI
GitLab CI
GitLab Pages
GitLab Pages
Bitbucket
Bitbucket
#OpenSourceCloud

I use GitLab when building side-projects and MVPs. The interface and interactions are close enough to those of GitHub to prevent cognitive switching costs between professional and personal projects hosted on different services.

GitLab also provides a suite of tools including issue/project management, CI/CD with GitLab CI, and validation/landing pages with GitLab Pages. With everything in one place, on an #OpenSourceCloud GitLab makes it easy for me to manage much larger projects on my own, than would be possible with other solutions or tools.

It's petty I know, but I can also read the GitLab code diffs far more easily than diffs on GitHub or Bitbucket...they just look better in my opinion.

See more
GitHub
GitHub
GitLab
GitLab
Bitbucket
Bitbucket
#Githubmarketplace

A bit difference in GitHub and GitLab though both are Version Control repository management services which provides key component in the software development workflow. A decision of choosing GitHub over GitLab is major leap extension from code management, to deployment and monitoring alongside looking beyond the code base hosting provided best fitted tools for developer communities.

  • Authentication stages - With GitLab you can set and modify people’s permissions according to their role. In GitHub, you can decide if someone gets a read or write access to a repository.
  • Built-In Continuous Integrations - GitLab offers its very own CI for free. No need to use an external CI service. And if you are already used to an external CI, you can obviously integrate with Jenkins, etc whereas GitHub offers various 3rd party integrations – such as Travis CI, CircleCI or Codeship – for running and testing your code. However, there’s no built-in CI solution at the moment.
  • Import/Export Resources - GitLab offers detailed documentation on how to import your data from other vendors – such as GitHub, Bitbucket to GitLab. GitHub, on the other hand, does not offer such detailed documentation for the most common git repositories. However, GitHub offers to use GitHub Importer if you have your source code in Subversion, Mercurial, TFS and others.

Also when it comes to exporting data, GitLab seems to do a pretty solid job, offering you the ability to export your projects including the following data:

  • Wiki and project repositories
  • Project uploads
  • The configuration including webhooks and services
  • Issues with comments, merge requests with diffs and comments, labels, milestones, snippets, and other project entities.

GitHub, on the other hand, seems to be more restrictive when it comes to export features of existing GitHub repositories. * Integrations - #githubmarketplace gives you an essence to have multiple and competitive integrations whereas you will find less in the GitLab.

So go ahead with better understanding.

See more
Perforce logo

Perforce

31
34
8
31
34
+ 1
8
Self-hosted Version Control Software
Perforce logo
Perforce
VS
Git logo
Git

related Mercurial posts

Tim Abbott
Tim Abbott
Founder at Zulip · | 7 upvotes · 22.7K views
atZulipZulip
Git
Git
Mercurial
Mercurial

I've been excited about Git ever since it got a built-in UI. It's the perfect combination of a really solid, simple data model, which allows an experienced user to predict precisely what a Git subcommand will do, often without needing to read the documentation (see the slides linked from the attached article for details). Most important to me as the lead developer of a large open source project (Zulip) is that it makes it possible to build a really clean, clear development history that I regularly use to understand details of our code history that are critical to making correct changes.

And it performs really, really well. In 2014, I managed Dropbox's migration from Mercurial to Git. And just switching tools made just about every common operation (git status, git log, git commit etc.) 2-10x faster than with Mercurial. It makes sense if you think about it, since Git was designed to perform well with Linux, one of the largest open source projects out there, but it was still a huge productivity increase that we got basically for free.

If you're learning Git, I highly recommend reading the other sections of Zulip's Git Guide; we get a lot of positive feedback from developers on it being a useful resource even for their projects unrelated to Zulip.

See more

related GitLab posts

Tim Abbott
Tim Abbott
Founder at Zulip · | 18 upvotes · 160.1K views
atZulipZulip
GitHub
GitHub
GitLab
GitLab

I have mixed feelings on GitHub as a product and our use of it for the Zulip open source project. On the one hand, I do feel that being on GitHub helps people discover Zulip, because we have enough stars (etc.) that we rank highly among projects on the platform. and there is a definite benefit for lowering barriers to contribution (which is important to us) that GitHub has such a dominant position in terms of what everyone has accounts with.

But even ignoring how one might feel about their new corporate owner (MicroSoft), in a lot of ways GitHub is a bad product for open source projects. Years after the "Dear GitHub" letter, there are still basic gaps in its issue tracker:

  • You can't give someone permission to label/categorize issues without full write access to a project (including ability to merge things to master, post releases, etc.).
  • You can't let anyone with a GitHub account self-assign issues to themselves.
  • Many more similar issues.

It's embarrassing, because I've talked to GitHub product managers at various open source events about these things for 3 years, and they always agree the thing is important, but then nothing ever improves in the Issues product. Maybe the new management at MicroSoft will fix their product management situation, but if not, I imagine we'll eventually do the migration to GitLab.

We have a custom bot project, http://github.com/zulip/zulipbot, to deal with some of these issues where possible, and every other large project we talk to does the same thing, more or less.

See more
Michael Kelly
Michael Kelly
Senior Software Engineer at StackShare · | 14 upvotes · 195.2K views
atACK FoundryACK Foundry
GitLab
GitLab
GitHub
GitHub
GitLab CI
GitLab CI
GitLab Pages
GitLab Pages
Bitbucket
Bitbucket
#OpenSourceCloud

I use GitLab when building side-projects and MVPs. The interface and interactions are close enough to those of GitHub to prevent cognitive switching costs between professional and personal projects hosted on different services.

GitLab also provides a suite of tools including issue/project management, CI/CD with GitLab CI, and validation/landing pages with GitLab Pages. With everything in one place, on an #OpenSourceCloud GitLab makes it easy for me to manage much larger projects on my own, than would be possible with other solutions or tools.

It's petty I know, but I can also read the GitLab code diffs far more easily than diffs on GitHub or Bitbucket...they just look better in my opinion.

See more
C logo

C

2.9K
1.7K
183
2.9K
1.7K
+ 1
183
One of the most widely used programming languages of all time
C logo
C
VS
Git logo
Git

related C posts

marcoalmeida
marcoalmeida
Go
Go
C
C
Python
Python
Rust
Rust

One important decision for delivering a platform independent solution with low memory footprint and minimal dependencies was the choice of the programming language. We considered a few from Python (there was already a reasonably large Python code base at Thumbtack), to Go (we were taking our first steps with it), and even Rust (too immature at the time).

We ended up writing it in C. It was easy to meet all requirements with only one external dependency for implementing the web server, clearly no challenges running it on any of the Linux distributions we were maintaining, and arguably the implementation with the smallest memory footprint given the choices above.

See more
Conor Myhrvold
Conor Myhrvold
Tech Brand Mgr, Office of CTO at Uber · | 8 upvotes · 483K views
atUber TechnologiesUber Technologies
C
C
Java
Java
JavaScript
JavaScript

Why Uber developed H3, our open source grid system to make geospatial data visualization and exploration easier and more efficient:

We decided to create H3 to combine the benefits of a hexagonal global grid system with a hierarchical indexing system. A global grid system usually requires at least two things: a map projection and a grid laid on top of the map. For map projection, we chose to use gnomonic projections centered on icosahedron faces. This projects from Earth as a sphere to an icosahedron, a twenty-sided platonic solid. The H3 grid is constructed by laying out 122 base cells over the Earth, with ten cells per face. H3 supports sixteen resolutions: https://eng.uber.com/h3/

(GitHub Pages : https://uber.github.io/h3/#/ Written in C w/ bindings in Java & JavaScript )

See more
Git Flow logo

Git Flow

30
14
0
30
14
+ 1
0
A set of git extensions to provide high-level repository operations
    Be the first to leave a pro
    Git Flow logo
    Git Flow
    VS
    Git logo
    Git
    Plastic SCM logo

    Plastic SCM

    20
    28
    10
    20
    28
    + 1
    10
    A distributed version control with strong merging, great GUIs and support for huge files
    Plastic SCM logo
    Plastic SCM
    VS
    Git logo
    Git
    Magit logo

    Magit

    7
    3
    0
    7
    3
    + 1
    0
    A Git Porcelain inside Emacs
      Be the first to leave a pro
      Magit logo
      Magit
      VS
      Git logo
      Git
      Pijul logo

      Pijul

      5
      9
      10
      5
      9
      + 1
      10
      A free and open source distributed version control system
      Pijul logo
      Pijul
      VS
      Git logo
      Git
      Git Reflow logo

      Git Reflow

      4
      8
      0
      4
      8
      + 1
      0
      Reflow automatically creates pull requests, ensures the code review is approved, and squash merges finished branches to master
        Be the first to leave a pro
        Git Reflow logo
        Git Reflow
        VS
        Git logo
        Git
        Gitless logo

        Gitless

        3
        12
        0
        3
        12
        + 1
        0
        An experimental version control system built on top of Git
          Be the first to leave a pro
          Gitless logo
          Gitless
          VS
          Git logo
          Git
          BitKeeper logo

          BitKeeper

          2
          3
          0
          2
          3
          + 1
          0
          Enterprise-ready version control, now open-source
            Be the first to leave a pro
            BitKeeper logo
            BitKeeper
            VS
            Git logo
            Git