Need advice about which tool to choose?Ask the StackShare community!
Git vs Gitless: What are the differences?
Introduction
Git and Gitless are both version control systems used for managing and tracking changes to files in software development projects. Although they serve the same purpose, there are key differences between the two.
Integration with existing Git workflows: Git integrates seamlessly with existing Git workflows and allows developers to use Git commands directly. In contrast, Gitless provides a simplified subset of Git commands and introduces new commands that attempt to make the version control process more intuitive and user-friendly.
Explicit commits and branches: Git requires developers to explicitly create commits and branches, making it easier to track changes and manage work in progress. Gitless, on the other hand, follows a more implicit approach by automatically committing changes and creating temporary branches, which may confuse some users accustomed to the explicit nature of Git.
Simplified commit history: Gitless provides a simplified and linear commit history by automatically squashing multiple commits into a single commit. This can help to make the commit history cleaner and easier to understand. In contrast, Git retains the full commit history, including all individual commits, providing a more detailed overview of the development process.
Reversible operations: Gitless introduces reversible operations, allowing users to easily undo changes without the need for complex Git commands. This can be particularly useful for beginners or individuals who are not familiar with the intricacies of Git's revert and reset commands.
Built-in staging area: Git includes a staging area that allows developers to selectively stage changes before committing them. Gitless simplifies this process by automatically staging all changes, eliminating the need for manual staging. While this reduces complexity, it also removes the flexibility and granularity offered by Git's staging area.
Collaboration with Git users: Gitless is designed to be compatible with Git, meaning that Git users can interact with Gitless repositories and vice versa. This allows for collaboration between teams using different version control systems, making it easier to work together on projects.
In Summary, Git and Gitless differ in their integration with existing Git workflows, the explicitness of commits and branches, the handling of commit history, the availability of reversible operations, the presence of a staging area, and the compatibility with Git.
SVN is much simpler than git for the simple stuff (checking in files and updating them when everyone's online), and much more complex than git for the complicated stuff (branching and merging). Or put another way, git's learning curve is steep up front, and then increases moderately as you do weird things; SVN's learning curve is very shallow up front and then increases rapidly.
If you're storing large files, if you're not branching, if you're not storing source code, and if your team is happy with SVN and the workflow you have, I'd say you should stay on SVN.
If you're writing source code with a relatively modern development practice (developers doing local builds and tests, pre-commit code reviews, preferably automated testing, preferably some amount of open-source code), you should move to git for two reasons: first, this style of working inherently requires frequent branching and merging, and second, your ability to interact with outside projects is easier if you're all comfortable with git instead of snapshotting the outside project into SVN.
Pros of Git
- Distributed version control system1.4K
- Efficient branching and merging1.1K
- Fast959
- Open source845
- Better than svn726
- Great command-line application368
- Simple306
- Free291
- Easy to use232
- Does not require server222
- Distributed28
- Small & Fast23
- Feature based workflow18
- Staging Area15
- Most wide-spread VSC13
- Disposable Experimentation11
- Role-based codelines11
- Frictionless Context Switching7
- Data Assurance6
- Efficient5
- Just awesome4
- Easy branching and merging3
- Github integration3
- Compatible2
- Possible to lose history and commits2
- Flexible2
- Team Integration1
- Easy1
- Light1
- Fast, scalable, distributed revision control system1
- Rebase supported natively; reflog; access to plumbing1
- Flexible, easy, Safe, and fast1
- CLI is great, but the GUI tools are awesome1
- It's what you do1
- Phinx0
Pros of Gitless
Sign up to add or upvote prosMake informed product decisions
Cons of Git
- Hard to learn16
- Inconsistent command line interface11
- Easy to lose uncommitted work9
- Worst documentation ever possibly made8
- Awful merge handling5
- Unexistent preventive security flows3
- Rebase hell3
- Ironically even die-hard supporters screw up badly2
- When --force is disabled, cannot rebase2
- Doesn't scale for big data1