Convert Figma logo to code with AI

gitless-vcs logogitless

A simple version control system built on top of Git

1,914
107
1,914
91

Top Related Projects

git-cola: The highly caffeinated Git GUI

6,562

It's Magit! A Git Porcelain inside Emacs.

52,000

simple terminal UI for git commands

18,189

Blazing 💥 fast terminal-ui for git written in rust 🦀

Browser extension for rendering an isometric pixel art version of your GitHub contribution graph.

12,424

Text-mode interface for git

Quick Overview

Gitless is an experimental version control system built on top of Git. It aims to simplify version control by providing a more intuitive interface and addressing some of Git's perceived shortcomings. Gitless maintains full compatibility with Git repositories while offering a different user experience.

Pros

  • Simplifies common version control tasks with a more intuitive command structure
  • Maintains full compatibility with Git repositories
  • Reduces the learning curve for version control newcomers
  • Addresses some of Git's confusing concepts, such as the staging area

Cons

  • Limited adoption compared to Git
  • May require users to learn a new set of commands if they're already familiar with Git
  • Adds an extra layer on top of Git, potentially introducing additional complexity
  • Some advanced Git features may not be directly accessible through Gitless

Getting Started

To get started with Gitless:

  1. Install Gitless:
pip install gitless
  1. Initialize a new Gitless repository:
gl init
  1. Add files to track:
gl track <file>
  1. Commit changes:
gl commit -m "Your commit message"
  1. Push changes to a remote repository:
gl publish

For more detailed instructions and advanced usage, refer to the official Gitless documentation.

Competitor Comparisons

git-cola: The highly caffeinated Git GUI

Pros of git-cola

  • More feature-rich GUI with advanced functionality for Git operations
  • Supports multiple platforms (Windows, macOS, Linux)
  • Actively maintained with regular updates and improvements

Cons of git-cola

  • Steeper learning curve due to more complex interface
  • Requires separate installation of Git
  • May be overwhelming for users seeking a simplified Git experience

Code Comparison

git-cola (Python):

from __future__ import absolute_import, division, unicode_literals
import os
import sys
from . import core

gitless (Python):

import os
import sys
import argparse
import traceback
from gitless import core

Both projects are written in Python and import similar modules. git-cola uses a more modern Python import statement, while gitless has a more straightforward import structure.

git-cola offers a comprehensive GUI for Git operations, providing advanced features and visualizations. It's suitable for users who want a powerful interface for managing Git repositories across multiple platforms.

gitless, on the other hand, aims to simplify Git usage by providing a more intuitive command-line interface. It's designed for users who find Git's concepts challenging and prefer a streamlined workflow.

The choice between these tools depends on the user's preference for GUI vs. CLI, desired feature set, and comfort level with Git concepts.

6,562

It's Magit! A Git Porcelain inside Emacs.

Pros of Magit

  • Highly integrated with Emacs, providing a powerful and efficient Git interface within the editor
  • Extensive feature set, covering almost all Git operations with intuitive keybindings
  • Large and active community, resulting in frequent updates and improvements

Cons of Magit

  • Steep learning curve for users unfamiliar with Emacs
  • Limited usefulness outside of the Emacs ecosystem
  • Can be overwhelming for Git beginners due to its comprehensive feature set

Code Comparison

Magit (Emacs Lisp):

(magit-status)
(magit-stage-file "file.txt")
(magit-commit-create)
(magit-push-current-to-pushremote)

Gitless (Python):

gl status
gl track file.txt
gl commit -m "Commit message"
gl publish

Summary

Magit is a powerful Git interface deeply integrated with Emacs, offering extensive features and an active community. However, it has a steep learning curve and is primarily useful within the Emacs ecosystem. Gitless, on the other hand, aims to simplify Git workflows with a more user-friendly command-line interface, making it potentially more accessible to Git beginners or those who prefer a streamlined approach outside of Emacs.

52,000

simple terminal UI for git commands

Pros of lazygit

  • Interactive TUI interface for easier Git operations
  • More feature-rich, offering advanced functionalities like interactive rebasing
  • Actively maintained with frequent updates and improvements

Cons of lazygit

  • Steeper learning curve due to more complex interface
  • Requires terminal with specific capabilities, potentially limiting compatibility
  • Larger codebase, which may lead to more potential bugs or issues

Code comparison

lazygit (Go):

func (gui *Gui) handleCommitConfirm() error {
    message := gui.State.CommitMessage
    if message == "" {
        return gui.createErrorPanel(gui.Tr.NoCommitMessageErr)
    }
    return gui.GitCommand.Commit(message)
}

Gitless (Python):

def commit(args):
    repo = gl.repo.repo()
    ci = repo.create_commit(args.m)
    repo.head.set_commit(ci)
    print('Commit created successfully')

Summary

Lazygit offers a more comprehensive Git interface with advanced features, while Gitless aims to simplify Git workflows. Lazygit's TUI approach may be more intuitive for some users, but it comes with a steeper learning curve. Gitless focuses on streamlining common Git operations, potentially making it easier for beginners. Both projects have their merits, and the choice between them depends on the user's needs and preferences.

18,189

Blazing 💥 fast terminal-ui for git written in rust 🦀

Pros of gitui

  • More active development with frequent updates and bug fixes
  • Offers a full-featured terminal user interface for Git operations
  • Supports a wide range of Git commands and workflows

Cons of gitui

  • Steeper learning curve due to its comprehensive feature set
  • Requires more system resources compared to the lightweight Gitless

Code comparison

Gitless simplifies Git commands:

gl branch create new-feature
gl switch new-feature
gl commit -m "Add new feature"

gitui provides a terminal UI for Git operations:

// No direct code comparison available, as gitui is a TUI application
// Usage involves navigating through menus and panels

Summary

Gitless aims to simplify Git workflows by providing a more intuitive command-line interface, while gitui offers a feature-rich terminal user interface for Git operations. Gitless may be more suitable for beginners or those seeking a simplified Git experience, whereas gitui caters to users who prefer a comprehensive, visual approach to Git management within the terminal.

Browser extension for rendering an isometric pixel art version of your GitHub contribution graph.

Pros of Isometric Contributions

  • Provides a visually appealing 3D representation of GitHub contribution graphs
  • Enhances the user experience by offering a unique way to view contribution data
  • Lightweight and easy to install as a browser extension

Cons of Isometric Contributions

  • Limited functionality compared to Gitless, focusing solely on visualization
  • Does not address underlying Git complexities or workflow improvements
  • May not be as useful for developers seeking to streamline their version control processes

Code Comparison

Isometric Contributions (JavaScript):

function getContributionsCollection(username) {
  return fetch(`https://github.com/users/${username}/contributions`)
    .then(response => response.text())
    .then(html => new DOMParser().parseFromString(html, 'text/html'))
    .then(doc => doc.querySelector('.js-yearly-contributions'));
}

Gitless (Python):

def status(repo):
  tracked_files = repo.tracked_files
  untracked_files = repo.untracked_files
  return StatusResult(
    tracked_files, untracked_files, repo.current_branch.name)

While Isometric Contributions focuses on enhancing the visual representation of GitHub contributions, Gitless aims to simplify Git workflows and provide a more user-friendly version control experience. The code snippets reflect their different purposes, with Isometric Contributions handling data visualization and Gitless managing repository operations.

12,424

Text-mode interface for git

Pros of tig

  • More mature and widely adopted project with a larger user base
  • Offers a comprehensive text-mode interface for Git repositories
  • Provides advanced features like custom key bindings and color schemes

Cons of tig

  • Steeper learning curve due to its extensive feature set
  • Requires more system resources compared to simpler Git interfaces
  • Limited to command-line usage, which may not suit all users

Code comparison

tig:

void main_view_draw(struct view *view)
{
    struct main_state *state = view->private;
    struct commit *commit;

    if (!view->lines)
        return;
}

gitless:

def main():
    try:
        gl_command = sys.argv[1]
    except IndexError:
        gl_command = 'status'  # default command

    try:
        gl.gl_setup()
    except gl.PathNotInRepoError as e:
        pprint.err(str(e))
        sys.exit(1)

Summary

Tig is a feature-rich, text-based interface for Git, offering advanced functionality and customization options. It's well-established but may be more complex for new users. Gitless, on the other hand, aims to simplify Git workflows with a more user-friendly approach, potentially sacrificing some advanced features in the process. The choice between the two depends on the user's needs and familiarity with Git concepts.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Gitless

PyPI version Homebrew Formula

Travis Build Status AppVeyor Build Status

Gitless is a version control system built on top of Git, that is easy to learn and use:

  • Simple commit workflow

    Track or untrack files to control what changes to commit. Changes to tracked files are committed by default, but you can easily customize the set of files to commit using flags

  • Independent branches

    Branches in Gitless include your working changes, so you can switch between branches without having to worry about conflicting uncommitted changes

  • Friendly command-line interface

    Gitless commands will give you good feedback and help you figure out what to do next

  • Compatible with Git

    Because Gitless is implemented on top of Git, you can always fall back on Git. And your coworkers you share a repo with need never know that you're not a Git aficionado. Moreover, you can use Gitless with GitHub or with any Git hosting service

Install

Installing Gitless won't interfere with your Git installation in any way. You can keep using Git and switch between Git and Gitless seamlessly.

We currently require Git (1.7.12+) to be installed, but this requirement is going to disappear soon once we finish with our migration to pygit2.

Binary release (macOS and Linux only)

Binary releases for macOS and Linux are available from the Gitless website.

If you've downloaded a binary release of Gitless everything is contained in the gl binary, so to install simply do:

$ cp path-to-downloaded-gl-binary /usr/local/bin/gl

You can put the binary in other locations as well, just be sure to update your PATH.

If for some reason this doesn't work (maybe you are running an old version of your OS?), try one of the other options (installing from source or via the Python Package Index).

Installing from source

To install from source you need to have Python 3.7+ installed.

Additionally, you need to install pygit2.

Then, download the source code tarball and do:

$ ./setup.py install

Installing via the Python Package Index

If you are a Python fan you might find it easier to install Gitless via the Python Package Index. To do this, you need to have Python 3.7+ installed.

Additionally, you need to install pygit2.

Then, just do:

$ pip install gitless

Installing via Homebrew (macOS only)

If you are using Homebrew, a package manager for macOS, you can install Gitless with:

brew update
brew install gitless

Installing via Snapcraft (Linux only)

If you are using Snapcraft, a package manager for Linux, you can install the most recent release of Gitless with:

snap install --channel=beta gitless

You can also use the edge channel to install the most recent build.

Installing via the Arch User Repository (Arch Linux only)

If you are using Arch Linux or any of its derivatives, you can use your favorite AUR Helper and install:

  • gitless for the latest released version
  • gitless-git to build the latest version straight from this repo

Documentation

gl -h, gl subcmd -h or check our documentation

Contribute

If you find a bug, create an issue in our GitHub repository. If you'd like to contribute code, here are some useful things to know:

  • To install gitless for development, install pygit2, clone the repo, cd to the repo root and do ./setup.py develop. This will install the gl command with a symlink to your source files. You can make changes to your code and run gl to test them.

  • We follow, to some extent, the Google Python Style Guide. Before submitting code, take a few seconds to look at the style guide and the Gitless code so that your edits are consistent with the codebase.

  • Finally, if you don't want Travis to be mad at you, check that tests pass in Python 3.7+. Tests can be run with:

    python -m unittest discover gitless/tests