Convert Figma logo to code with AI

mislav logohub

A command-line tool that makes git easier to use with GitHub.

22,774
2,197
22,774
299

Top Related Projects

37,027

GitHub’s official command line tool

22,808

A command-line tool that makes git easier to use with GitHub.

36,640

GitHub’s official command line tool

A Git platform powered by Scala with easy installation, high extensibility & GitHub API compatibility

44,785

Gogs is a painless self-hosted Git service

Quick Overview

Hub is a command-line tool that extends Git with extra features and commands that make working with GitHub easier. It wraps Git, adding functionality for creating and managing pull requests, issues, and releases directly from the terminal, as well as providing shortcuts for common GitHub operations.

Pros

  • Seamless integration with Git, allowing users to work with GitHub without leaving the command line
  • Simplifies common GitHub workflows, such as creating pull requests and managing issues
  • Supports multiple GitHub accounts and enterprise installations
  • Extensible and customizable through shell aliases and scripts

Cons

  • Learning curve for users who are already comfortable with Git and GitHub's web interface
  • May require periodic updates to stay in sync with GitHub's API changes
  • Some advanced GitHub features may not be available or fully supported
  • Dependency on external tools and libraries may cause compatibility issues on some systems

Getting Started

  1. Install Hub:

    # macOS with Homebrew
    brew install hub
    
    # Linux
    sudo apt install hub
    
    # Windows with Scoop
    scoop install hub
    
  2. Configure Hub to use your GitHub credentials:

    hub api user
    
  3. Use Hub commands:

    # Create a new repository
    hub create
    
    # Open the current repository in a browser
    hub browse
    
    # Create a pull request
    hub pull-request
    

For more detailed instructions and usage examples, refer to the official Hub documentation at https://hub.github.com/hub.html.

Competitor Comparisons

37,027

GitHub’s official command line tool

Pros of cli

  • Official GitHub CLI tool with more comprehensive and up-to-date features
  • Better integration with GitHub Actions and other GitHub-specific functionalities
  • More frequent updates and active development from GitHub's team

Cons of cli

  • Steeper learning curve due to more complex command structure
  • Potentially overwhelming for users who only need basic Git operations
  • May require more system resources due to additional features

Code Comparison

hub:

hub clone user/repo
hub create
hub pull-request

cli:

gh repo clone user/repo
gh repo create
gh pr create

The code comparison shows that cli uses a more structured command hierarchy, while hub has slightly more concise commands. Both tools achieve similar results, but cli offers more granular control and additional options for each command.

Overall, cli is better suited for users who frequently interact with GitHub-specific features and want a more powerful, official tool. Hub remains a good choice for those who prefer a simpler, lightweight option for basic Git and GitHub operations.

22,808

A command-line tool that makes git easier to use with GitHub.

Pros of hub

  • More actively maintained and updated
  • Larger community and contributor base
  • Better documentation and examples

Cons of hub

  • Potentially more complex due to additional features
  • May have a steeper learning curve for new users
  • Larger codebase, which could lead to more potential bugs

Code Comparison

hub:

def github_api(method, path, data = nil, headers = {})
  if block_given?
    abort "Error: block syntax deprecated. Use `github_api_client` instead."
  end
  res = github_api_client.request(
    method, path,
    :body => data, :headers => headers
  )
  res.error! unless res.success?
  res
end

hub>:

def github_api(method, path, data = nil, headers = {})
  res = github_api_client.request(
    method, path,
    :body => data, :headers => headers
  )
  res.error! unless res.success?
  res
end

The code comparison shows that hub has additional error handling for deprecated block syntax, while hub> has a simpler implementation. This reflects the more feature-rich nature of hub compared to hub>.

36,640

GitHub’s official command line tool

Pros of cli

  • Official GitHub CLI tool with more comprehensive and up-to-date features
  • Better integration with GitHub Actions and other GitHub-specific functionalities
  • More frequent updates and active development from GitHub's team

Cons of cli

  • Steeper learning curve due to more complex command structure
  • Potentially overwhelming for users who only need basic Git operations
  • May require more system resources due to additional features

Code Comparison

hub:

hub clone user/repo
hub create
hub pull-request

cli:

gh repo clone user/repo
gh repo create
gh pr create

The code comparison shows that cli uses a more structured command hierarchy, while hub has slightly more concise commands. Both tools achieve similar results, but cli offers more granular control and additional options for each command.

Overall, cli is better suited for users who frequently interact with GitHub-specific features and want a more powerful, official tool. Hub remains a good choice for those who prefer a simpler, lightweight option for basic Git and GitHub operations.

A Git platform powered by Scala with easy installation, high extensibility & GitHub API compatibility

Pros of GitBucket

  • Full-featured GitHub clone with web interface, issue tracking, and wiki
  • Built-in Git server, eliminating the need for external Git hosting
  • Supports plugins for extended functionality

Cons of GitBucket

  • Heavier and more resource-intensive than Hub
  • Steeper learning curve for setup and administration
  • May be overkill for users who only need command-line Git enhancements

Code Comparison

GitBucket (Scala):

get("/api/v3/repos/:owner/:repository/issues")(referrersOnly { repository =>
  val page = IssueSearchCondition.page(request)
  val condition = IssueSearchCondition(request)
  JsonFormat(Issues.searchIssues(
    repository.owner, repository.name, condition, page, repository.repository.isPrivate
  ))
})

Hub (Go):

func (client *Client) ForkRepository(project *Project) (string, error) {
	url := fmt.Sprintf("repos/%s/forks", project.FullName())
	res, err := client.simpleApi.PostJSON(url, nil)
	if err = checkStatus(201, "creating fork", res, err); err != nil {
		return "", err
	}
	return res.Header.Get("Location"), nil
}

GitBucket is a comprehensive GitHub-like platform, while Hub is a command-line tool that extends Git with GitHub-specific features. GitBucket offers a complete web interface and collaboration tools, making it suitable for teams or organizations looking to host their own Git server. Hub, on the other hand, is lightweight and focuses on enhancing the Git command-line experience for GitHub users.

44,785

Gogs is a painless self-hosted Git service

Pros of Gogs

  • Self-hosted Git service with a lightweight footprint
  • Provides a complete web-based interface for repository management
  • Cross-platform support with easy installation

Cons of Gogs

  • Less integration with GitHub's ecosystem
  • Requires more setup and maintenance compared to Hub
  • May have fewer advanced features for power users

Code Comparison

Hub (command-line usage):

hub clone user/repo
hub pull-request
hub browse

Gogs (configuration example):

[server]
DOMAIN = gogs.example.com
HTTP_PORT = 3000
ROOT_URL = http://gogs.example.com/

[database]
TYPE = mysql
HOST = 127.0.0.1:3306
NAME = gogs
USER = root
PASSWD = password

Summary

Hub is a command-line tool that extends Git with GitHub-specific features, while Gogs is a self-hosted Git service. Hub focuses on enhancing Git workflows with GitHub integration, whereas Gogs provides a complete Git hosting solution. Hub is easier to use for GitHub users, while Gogs offers more control and privacy for those who want to host their own Git repositories.

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

hub is a command line tool that wraps git in order to extend it with extra features and commands that make working with GitHub easier.

For an official, potentially more user-friendly command-line interface to GitHub, see cli.github.com and this comparison.

This repository and its issue tracker is not for reporting problems with GitHub.com web interface. If you have a problem with GitHub itself, please contact Support.

Usage

$ hub clone rtomayko/tilt
#=> git clone https://github.com/rtomayko/tilt.git

# or, if you prefer the SSH protocol:
$ git config --global hub.protocol ssh
$ hub clone rtomayko/tilt
#=> git clone git@github.com:rtomayko/tilt.git

See usage examples or the full reference documentation to see all available commands and flags.

hub can also be used to make shell scripts that directly interact with the GitHub API.

hub can be safely aliased as git, so you can type $ git <command> in the shell and have it expanded with hub features.

Installation

The hub executable has no dependencies, but since it was designed to wrap git, it's recommended to have at least git 1.7.3 or newer.

platformmanagercommand to run
macOS, LinuxHomebrewbrew install hub
macOS, LinuxNixnix-env -i hub
WindowsScoopscoop install hub
WindowsChocolateychoco install hub
Fedora LinuxDNFsudo dnf install hub
Arch Linuxpacmansudo pacman -S hub
FreeBSDpkg(8)pkg install hub
Debian, Ubuntuapt(8)sudo apt install hub
UbuntuSnapWe do not recommend installing the snap anymore.
openSUSEZyppersudo zypper install hub
Void Linuxxbpssudo xbps-install -S hub
GentooPortagesudo emerge dev-vcs/hub
anycondaconda install -c conda-forge hub

Packages other than Homebrew are community-maintained (thank you!) and they are not guaranteed to match the latest hub release. Check hub version after installing a community package.

Standalone

hub can be easily installed as an executable. Download the latest binary for your system and put it anywhere in your executable path.

GitHub Actions

hub is ready to be used in your GitHub Actions workflows:

steps:
- uses: actions/checkout@v2

- name: List open pull requests
  run: hub pr list
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Note that the default secrets.GITHUB_TOKEN will only work for API operations scoped to the repository that runs this workflow. If you need to interact with other repositories, generate a Personal Access Token with at least the repo scope and add it to your repository secrets.

Source

Prerequisites for building from source are:

Clone this repository and run make install:

git clone \
  --config transfer.fsckobjects=false \
  --config receive.fsckobjects=false \
  --config fetch.fsckobjects=false \
  https://github.com/github/hub.git

cd hub
make install prefix=/usr/local

Aliasing

Some hub features feel best when it's aliased as git. This is not dangerous; your normal git commands will all work. hub merely adds some sugar.

hub alias displays instructions for the current shell. With the -s flag, it outputs a script suitable for eval.

You should place this command in your .bash_profile or other startup script:

eval "$(hub alias -s)"

PowerShell

If you're using PowerShell, you can set an alias for hub by placing the following in your PowerShell profile (usually ~/Documents/WindowsPowerShell/Microsoft.PowerShell_profile.ps1):

Set-Alias git hub

A simple way to do this is to run the following from the PowerShell prompt:

Add-Content $PROFILE "`nSet-Alias git hub"

Note: You'll need to restart your PowerShell console in order for the changes to be picked up.

If your PowerShell profile doesn't exist, you can create it by running the following:

New-Item -Type file -Force $PROFILE

Shell tab-completion

hub repository contains tab-completion scripts for bash, zsh and fish. These scripts complement existing completion scripts that ship with git.

Meta