Convert Figma logo to code with AI

isacikgoz logogitbatch

manage your git repositories in one place

1,540
53
1,540
19

Top Related Projects

52,000

simple terminal UI for git commands

18,189

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

37,027

GitHub’s official command line tool

40,493

A cross-platform, customizable science fiction terminal emulator with advanced monitoring & touchscreen support.

172,325

🙃 A delightful community-driven (with 2,300+ 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.

8,547

Customizable Windows terminal with tabs, splits, quake-style, hotkeys and more

Quick Overview

Gitbatch is a command-line tool for managing multiple Git repositories simultaneously. It provides an interactive terminal user interface (TUI) that allows users to perform Git operations on multiple repositories in parallel, making it easier to manage and maintain large numbers of Git projects.

Pros

  • Efficient management of multiple Git repositories from a single interface
  • Interactive TUI for easy navigation and operation
  • Parallel execution of Git commands across multiple repositories
  • Customizable repository groups for organized workflow

Cons

  • Limited to command-line interface, which may not suit all users
  • Requires some learning curve to master the TUI navigation
  • May not support all advanced Git operations available in the standard Git CLI

Getting Started

To install Gitbatch, follow these steps:

# For macOS users with Homebrew
brew tap isacikgoz/taps
brew install gitbatch

# For Linux users
sudo curl -L https://github.com/isacikgoz/gitbatch/releases/download/v0.7.2/gitbatch_0.7.2_linux_amd64.tar.gz | tar xz -C /usr/local/bin

# For Windows users (using scoop)
scoop bucket add isacikgoz https://github.com/isacikgoz/scoop-bucket.git
scoop install gitbatch

After installation, navigate to a directory containing multiple Git repositories and run:

gitbatch

This will launch the interactive TUI, allowing you to manage your repositories. Use arrow keys to navigate, and press '?' for help on available commands within the interface.

Competitor Comparisons

52,000

simple terminal UI for git commands

Pros of lazygit

  • More feature-rich and comprehensive Git UI
  • Active development with frequent updates and bug fixes
  • Extensive documentation and user guides

Cons of lazygit

  • Steeper learning curve due to more complex interface
  • Potentially overwhelming for users who prefer simpler Git workflows

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)
}

gitbatch:

func (m *Model) Commit(msg string) error {
    if msg == "" {
        return errors.New("commit message cannot be empty")
    }
    return m.Repository.Commit(msg)
}

Both projects use Go and handle Git operations, but lazygit has a more complex UI-driven approach, while gitbatch focuses on batch operations with a simpler interface. lazygit offers a fuller featured Git experience, while gitbatch is more streamlined for specific use cases. The choice between them depends on user preferences and workflow requirements.

18,189

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

Pros of gitui

  • More feature-rich and comprehensive Git UI, offering a wider range of Git operations
  • Actively maintained with frequent updates and improvements
  • Written in Rust, providing better performance and memory safety

Cons of gitui

  • Steeper learning curve due to more complex interface and features
  • Larger binary size and potentially higher resource usage
  • May be overwhelming for users who prefer simpler, focused Git tools

Code comparison

gitui:

fn main() -> Result<()> {
    let mut app = App::default();
    app.run()?;
    Ok(())
}

gitbatch:

func main() {
    app := gitbatch.NewApp()
    app.Run()
}

Summary

gitui is a more comprehensive Git UI tool with a wider range of features, while gitbatch focuses on batch operations for multiple repositories. gitui is written in Rust, offering better performance, while gitbatch is written in Go. gitui has a steeper learning curve but provides more functionality, whereas gitbatch is simpler and more focused on specific use cases. Both tools have their strengths, and the choice between them depends on the user's specific needs and preferences.

37,027

GitHub’s official command line tool

Pros of cli

  • Official GitHub CLI tool with extensive GitHub API integration
  • Broader feature set covering issues, PRs, releases, and more
  • Regularly updated with new GitHub features and improvements

Cons of cli

  • Larger scope may be overwhelming for users only needing git operations
  • Requires GitHub account and authentication for most features
  • Less focused on batch operations across multiple repositories

Code comparison

gitbatch:

func (m *Model) fetchOptions() tea.Msg {
    opts := []string{"Fetch", "Pull", "Merge", "Rebase"}
    return opts
}

cli:

func (c *RepoCreateCmd) Run() error {
    client, err := c.HttpClient()
    if err != nil {
        return err
    }
    // ... (repository creation logic)
}

Summary

gitbatch focuses on batch git operations across multiple repositories with a terminal UI, while cli is the official GitHub CLI tool offering a wide range of GitHub-specific features. gitbatch may be more suitable for users managing multiple local git repositories, whereas cli is ideal for those heavily integrated with GitHub's ecosystem and needing access to GitHub-specific features beyond basic git operations.

40,493

A cross-platform, customizable science fiction terminal emulator with advanced monitoring & touchscreen support.

Pros of edex-ui

  • Visually stunning and immersive sci-fi inspired interface
  • Comprehensive system monitoring and file management capabilities
  • Cross-platform support (Windows, macOS, Linux)

Cons of edex-ui

  • Resource-intensive due to its graphical nature
  • Steeper learning curve for users unfamiliar with terminal-based interfaces
  • Less focused on Git-specific operations compared to gitbatch

Code Comparison

edex-ui (JavaScript):

const pty = require("node-pty");
const os = require("os");

var shell = os.platform() === "win32" ? "powershell.exe" : "bash";
var ptyProcess = pty.spawn(shell, [], {
  name: "xterm-color",
  cwd: process.env.HOME,
  env: process.env
});

gitbatch (Go):

func (g *GitManager) FetchAll() error {
    for _, repo := range g.Repositories {
        if err := repo.Fetch(); err != nil {
            return err
        }
    }
    return nil
}

The code snippets highlight the different focus areas of the two projects. edex-ui emphasizes terminal emulation and cross-platform compatibility, while gitbatch concentrates on Git operations across multiple repositories.

172,325

🙃 A delightful community-driven (with 2,300+ 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

  • Extensive plugin ecosystem with 300+ plugins for various tools and workflows
  • Large community with frequent updates and contributions
  • Customizable themes for terminal appearance enhancement

Cons of Oh My Zsh

  • Can slow down shell startup time due to numerous plugins and features
  • Potential for feature bloat, which may overwhelm new users
  • Requires Zsh shell, limiting compatibility with some systems

Code Comparison

Oh My Zsh (theme customization):

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

Gitbatch (batch git operations):

repos, err := git.GetRepos(path)
if err != nil {
    return err
}

Key Differences

  • Oh My Zsh focuses on shell customization and productivity enhancements
  • Gitbatch specializes in managing multiple Git repositories simultaneously
  • Oh My Zsh is written in shell scripts, while Gitbatch is written in Go
  • Oh My Zsh has a broader scope, while Gitbatch targets a specific use case

Use Cases

Oh My Zsh:

  • Developers seeking a feature-rich shell environment
  • Users who frequently work with various command-line tools

Gitbatch:

  • Developers managing multiple Git repositories
  • DevOps engineers handling large-scale project structures
8,547

Customizable Windows terminal with tabs, splits, quake-style, hotkeys and more

Pros of ConEmu

  • Offers a full-featured Windows console emulator with tabs, splits, and customizable UI
  • Supports a wide range of shells and integrates well with various command-line tools
  • Provides extensive customization options for appearance and functionality

Cons of ConEmu

  • More complex setup and configuration compared to GitBatch's focused git-centric approach
  • Larger footprint and potentially steeper learning curve for users only interested in git operations
  • Not specifically designed for batch git operations across multiple repositories

Code Comparison

While a direct code comparison is not particularly relevant due to the different focuses of these projects, we can highlight their core functionalities:

GitBatch (main.go):

func main() {
    app := cli.NewApp()
    app.Name = "gitbatch"
    app.Usage = "manage multiple git repositories"
    // ... (omitted for brevity)
}

ConEmu (ConEmuC.cpp):

int main(int argc, char** argv)
{
    gbDumpServerInitStatus = (gpLogSize != NULL);
    gpConsoleArgs = new ConsoleArgs(argc, argv);
    // ... (omitted for brevity)
}

These snippets demonstrate the different languages and approaches used by each project, reflecting their distinct purposes and architectures.

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

Build Status MIT License Go Report Card

gitbatch

Managing multiple git repositories is easier than ever. I (was) often end up working on many directories and manually pulling updates etc. To make this routine faster, I created a simple tool to handle this job. Although the focus is batch jobs, you can still do de facto micro management of your git repositories (e.g add/reset, stash, commit etc.)

Check out the screencast of the app: asciicast

Installation

Install latest Golang release.

To install with go, run the following command;

go get github.com/isacikgoz/gitbatch/cmd/gitbatch

or, in Windows 10:

go install github.com/isacikgoz/gitbatch/cmd/gitbatch@latest

MacOS using homebrew

brew install gitbatch

For other options see installation page

Use

run the gitbatch command from the parent of your git repositories. For start-up options simply gitbatch --help

For more information see the wiki pages

Further goals

  • improve testing
  • add push
  • full src-d/go-git integration (having some performance issues in large repos)
    • fetch, config, rev-list, add, reset, commit, status and diff commands are supported but not fully utilized, still using git occasionally
    • merge, stash are not supported yet by go-git

Credits

  • go-git for git interface (partially)
  • gocui for user interface
  • viper for configuration management
  • color for colored text
  • kingpin for command-line flag&options