Convert Figma logo to code with AI

tj logogit-extras

GIT utilities -- repo summary, repl, changelog population, author commit percentages and more

17,802
1,217
17,802
91

Top Related Projects

39,977

GitHub’s official command line tool

56,685

Git Source Code Mirror - This is a publish-only repository but pull requests can be turned into patches to the mailing list via GitGitGadget (https://gitgitgadget.github.io/). Please follow Documentation/SubmittingPatches procedure for any of your improvements.

62,551

simple terminal UI for git commands

6,832

It's Magit! A Git Porcelain inside Emacs.

181,789

🙃 A delightful community-driven (with 2,400+ contributors) framework for managing your zsh configuration. Includes 300+ optional plugins (rails, git, macOS, hub, docker, homebrew, node, php, python, etc), 140+ themes to spice up your morning, and an auto-update tool that makes it easy to keep up with the latest updates from the community.

26,826

Git extensions to provide high-level repository operations for Vincent Driessen's branching model.

Quick Overview

Git Extras is a collection of Git utilities that enhance the functionality of Git with additional commands and features. It provides a set of custom Git commands that simplify common Git workflows, improve productivity, and offer extended capabilities beyond the standard Git command set.

Pros

  • Extends Git functionality with useful and time-saving commands
  • Easy to install and integrate into existing Git workflows
  • Actively maintained with regular updates and contributions
  • Supports various operating systems (Linux, macOS, Windows)

Cons

  • Requires separate installation and may not be available on all systems by default
  • Some commands may have a learning curve for users accustomed to standard Git commands
  • Potential conflicts with other Git extensions or custom aliases
  • May introduce dependencies on external tools for certain commands

Getting Started

To install Git Extras, you can use package managers or build from source:

# On macOS using Homebrew
brew install git-extras

# On Ubuntu/Debian
sudo apt-get install git-extras

# On Fedora
sudo dnf install git-extras

# From source
git clone https://github.com/tj/git-extras.git
cd git-extras
sudo make install

After installation, you can start using Git Extras commands. Here are a few examples:

# View a summary of your repository
git summary

# Create a new branch with the given name
git feature my-new-feature

# Merge the specified branch into the current branch with a merge commit
git merge-into develop

# Show a list of authors and their commit counts
git authors

For a complete list of available commands and their usage, refer to the Git Extras documentation or run git extras --help.

Competitor Comparisons

39,977

GitHub’s official command line tool

Pros of cli/cli

  • Official GitHub CLI tool with deep integration into GitHub's ecosystem
  • Supports a wider range of GitHub-specific features like pull requests and issues
  • Regularly updated with new GitHub features and improvements

Cons of cli/cli

  • Focused solely on GitHub, limiting its usefulness for other Git hosting platforms
  • Larger installation size and potentially more resource-intensive
  • Steeper learning curve for users familiar with standard Git commands

Code Comparison

git-extras:

git summary
git effort
git ignore

cli/cli:

gh pr create
gh issue list
gh repo clone

Summary

git-extras is a collection of Git utilities that enhance the standard Git experience, while cli/cli is the official GitHub CLI tool designed specifically for GitHub users. git-extras offers a broader range of Git-related commands that work across different platforms, whereas cli/cli provides deeper integration with GitHub-specific features. The choice between the two depends on whether you primarily work with GitHub or need more general Git utilities across various platforms.

56,685

Git Source Code Mirror - This is a publish-only repository but pull requests can be turned into patches to the mailing list via GitGitGadget (https://gitgitgadget.github.io/). Please follow Documentation/SubmittingPatches procedure for any of your improvements.

Pros of git

  • Official Git source code repository, providing the core functionality and implementation
  • Extensive documentation and comprehensive test suite
  • Widely used and supported by the global Git community

Cons of git

  • Steeper learning curve for contributors due to complex codebase
  • Lacks some convenient utility commands found in git-extras
  • Requires more manual steps for certain operations that git-extras simplifies

Code comparison

git:

int cmd_add(int argc, const char **argv, const char *prefix)
{
    int patch = 0, update = 0, intent_to_add = 0;
    int ignore_errors = 0, ignore_missing = 0;
    int addremove = 0;

git-extras:

#!/usr/bin/env bash

echo "$(git log --author="$1" --pretty=tformat: --numstat | \
    awk '{ add += $1; subs += $2; loc += $1 - $2 } END \
    { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }')"

The git repository contains the core Git implementation in C, while git-extras provides shell scripts for additional Git utilities. git-extras focuses on enhancing Git workflows with convenient commands, whereas git is the foundation upon which these extras are built.

62,551

simple terminal UI for git commands

Pros of lazygit

  • Interactive TUI for easier Git operations
  • Visual representation of Git history and branches
  • Built-in diff viewer and merge conflict resolution

Cons of lazygit

  • Steeper learning curve for new users
  • Requires terminal with specific capabilities
  • Less extensible compared to git-extras

Code comparison

lazygit:

func (gui *Gui) handleCommitConfirm(g *gocui.Gui, v *gocui.View) error {
    message := gui.trimmedContent(v)
    if message == "" {
        return gui.createErrorPanel(gui.Tr.NoCommitMessageErr)
    }
    return gui.handleCommitSubmit(message)
}

git-extras:

#!/usr/bin/env bash
set -e

if test "$1" = "--version"; then
  echo "${SCRIPT_NAME} ${VERSION}"
  exit 0
fi

Summary

lazygit offers a more visual and interactive approach to Git operations, with a TUI that simplifies complex tasks. However, it may be less accessible to new users and requires specific terminal capabilities. git-extras, on the other hand, provides a collection of useful Git commands that extend the functionality of Git without changing the core workflow. It's more lightweight and easier to integrate into existing scripts, but lacks the visual appeal and interactive features of lazygit.

6,832

It's Magit! A Git Porcelain inside Emacs.

Pros of Magit

  • Comprehensive Emacs integration for Git operations
  • Powerful interactive rebasing and staging features
  • Extensive documentation and active community support

Cons of Magit

  • Steep learning curve for new users
  • Limited to Emacs environment
  • Requires more setup compared to command-line tools

Code Comparison

Magit (interactive rebase):

(magit-rebase-interactive "HEAD~3" nil)

Git Extras (interactive rebase):

git rebase -i HEAD~3

Summary

Magit is a powerful Git interface for Emacs users, offering deep integration and advanced features. It excels in providing a comprehensive Git workflow within the Emacs environment but may be overwhelming for newcomers.

Git Extras, on the other hand, extends Git's functionality with additional command-line tools, making it more accessible to users across different environments. It's easier to adopt for those familiar with Git's command-line interface but lacks the deep integration and interactive features of Magit.

Both tools enhance Git workflows, but cater to different user preferences and environments. Magit is ideal for Emacs power users, while Git Extras suits those who prefer command-line tools and want to extend Git's functionality across various platforms.

181,789

🙃 A delightful community-driven (with 2,400+ contributors) framework for managing your zsh configuration. Includes 300+ optional plugins (rails, git, macOS, hub, docker, homebrew, node, php, python, etc), 140+ themes to spice up your morning, and an auto-update tool that makes it easy to keep up with the latest updates from the community.

Pros of Oh My Zsh

  • Comprehensive framework for managing Zsh configuration
  • Large community with numerous plugins and themes
  • Easier setup for beginners with pre-configured options

Cons of Oh My Zsh

  • Can be slower to load compared to minimal Git setups
  • May include unnecessary features for some users
  • Potential for conflicts with existing Zsh configurations

Code Comparison

Oh My Zsh (plugin usage):

plugins=(git docker kubectl)
source $ZSH/oh-my-zsh.sh

Git Extras (command usage):

git summary
git effort
git ignore

Key Differences

  • Scope: Oh My Zsh is a full Zsh framework, while Git Extras focuses on Git command enhancements
  • Installation: Oh My Zsh requires Zsh shell, Git Extras works with any shell
  • Customization: Oh My Zsh offers themes and plugins, Git Extras provides standalone Git commands
  • Performance: Git Extras is generally lighter and faster to load
  • Learning curve: Oh My Zsh may require more time to master all features

Use Cases

  • Oh My Zsh: Ideal for users wanting a complete Zsh environment with extensive customization
  • Git Extras: Better for those seeking specific Git workflow improvements without changing their shell setup

Both projects enhance the command-line experience, but cater to different needs and preferences in terms of scope and functionality.

26,826

Git extensions to provide high-level repository operations for Vincent Driessen's branching model.

Pros of gitflow

  • Provides a structured branching model for managing complex projects
  • Offers clear guidelines for handling releases and hotfixes
  • Integrates well with popular Git hosting platforms

Cons of gitflow

  • Can be overly complex for smaller projects or teams
  • Requires more overhead in branch management
  • May lead to longer-lived feature branches

Code comparison

gitflow:

git flow init
git flow feature start new-feature
git flow feature finish new-feature
git flow release start 1.0.0
git flow release finish 1.0.0

git-extras:

git feature new-feature
git feature finish new-feature
git release 1.0.0

Key differences

  • git-extras offers a broader range of Git utilities and commands
  • gitflow focuses specifically on branching workflows
  • git-extras has a simpler syntax for common operations
  • gitflow provides more structure but requires additional setup

Use cases

  • gitflow: Larger teams, complex projects with regular releases
  • git-extras: Developers seeking to enhance their Git workflow with useful shortcuts and commands

Community and maintenance

  • gitflow: Large community, but less active development
  • git-extras: Active development and frequent updates

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

Git Extras

Little git extras.

Screencasts

Just getting started? Check out these screencasts:

Installation

See the Installation page.

Commands

Go to the Commands page for basic usage and examples.

GIT utilities -- repo summary, repl, changelog population, author commit percentages and more

Contributing

Interested in contributing? Awesome!

Please read Contributing before you make a PR, thanks!

The change of the default branch

As of Git Extras 6.4 the assumed default branch name changed from master to main. This affects the Git Extras commands git archive-file, git delete-merged-branches, git delta, git pull-request, git show-merged-branches, git show-unmerged-branches, and git squash.

To change the default branch name to master: change either the configuration git-extras.default-branch or init.defaultBranch to master; the former takes precedence.

For example, git config git-extras.default-branch master.