Top Related Projects
GitHub’s official command line tool
A command-line tool that makes git easier to use with GitHub.
GitHub’s official command line tool
A Git platform powered by Scala with easy installation, high extensibility & GitHub API compatibility
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
-
Install Hub:
# macOS with Homebrew brew install hub # Linux sudo apt install hub # Windows with Scoop scoop install hub
-
Configure Hub to use your GitHub credentials:
hub api user
-
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
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 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>.
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.
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 designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
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.
platform | manager | command to run |
---|---|---|
macOS, Linux | Homebrew | brew install hub |
macOS, Linux | Nix | nix-env -i hub |
Windows | Scoop | scoop install hub |
Windows | Chocolatey | choco install hub |
Fedora Linux | DNF | sudo dnf install hub |
Arch Linux | pacman | sudo pacman -S hub |
FreeBSD | pkg(8) | pkg install hub |
Debian, Ubuntu | apt(8) | sudo apt install hub |
Ubuntu | Snap | We do not recommend installing the snap anymore. |
openSUSE | Zypper | sudo zypper install hub |
Void Linux | xbps | sudo xbps-install -S hub |
Gentoo | Portage | sudo emerge dev-vcs/hub |
any | conda | conda 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:
make
- Go 1.11+
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
Top Related Projects
GitHub’s official command line tool
A command-line tool that makes git easier to use with GitHub.
GitHub’s official command line tool
A Git platform powered by Scala with easy installation, high extensibility & GitHub API compatibility
Gogs is a painless self-hosted Git service
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot