hub(1) - 让 git 与 github 更容易合作

命令简介

  • hub [-noop] <COMMAND> [<OPTIONS>]
  • hub alias [-s][<shell>]
  • hub-help - <COMMAND>

DESCRIPTION

hub 是一个 Git 包装工具, 扩展与带有额外的功能,让它更好的在 GitHub 工作.

命令

可分为两组:

  • 扩展: 所有这些都是在 Git 现成的,
  • 新增: hub 扩展了和 hub 提供的是 cus-.

扩展的 git 命令

  • hub-am(1):从 Github 的(pull request)提交请求复制 commit 到本地.

  • hub-apply(1): 从 GitHub 下载补丁和本地应用.

  • hub-checkout(1): 签到-Checkout 提交请求的 head 作为一个本地分支.

  • hub-cherry-pick(1): 从 Github 的一个 Fork 选择一个 commit.

  • hub-clone(1):从 GitHub 克隆-clone 库.

  • hub-fetch(1):在执行 Git 获取之前,添加错过的 remote.

  • hub-init(1):初始化 Git 存储库,并向 Github 添加远程 remote.

  • hub-merge(1):将 一个本地带信息的提交请求合并,就像在 Github 的 Merge 按钮.

  • hub-push(1):将 Git 分支推到每个远程-remote 列表上.

  • hub-remote(1):为 Github 存储库添加 Git 远程-remote.

  • hub-submodule(1):为 Github 存储库添加 Git 子模块.

hub 提供的新命令

配置

GitHub OAuth 安全验证

Hub 在第一次需要访问 API 时,将按照提示输入 GitHub 用户名和密码,并将其交换为 OAuth 令牌,并将其保存在~/.config/hub中.

为了避免被提示,使用”GITHUB_USER”和”GITHUB_PASSWORD”环境变量.

或者,您可以提供”GITHUB_TOKEN”,一个访问令牌.存储库权限.这将不会写到”~/.config/hub”.

用 HTTPS 替换 git 协议

如果您更喜欢 HTTPS 协议用于 git 操作,那么您可以通过配置 hub 来生成https\:-URLs,而不是”git:”或”ssh:”:

$ git config -global hub.protocol https

这将影响”clone”、”fork”、”remote add”和其他对 GitHub 库的 URL 引用的 hub 扩展命令.

GitHub Enterprise-企业

默认情况下,hub 只与具有指向”github.com”的存储库一起工作.Github 企业主机需要用白名单配置 hub ,处理与 github.com 相同的远程服务器:

$ git config -global -add hub.host MY.GIT.ORG

诸如”init”和”clone”等命令的默认主机仍然是”github.com”,但这可受到”GITHUB_HOST”环境变量的影响:

$ GITHUB_HOST=my.git.org git clone myproject

环境变量

  • HUB_VERBOSE: hub 命令启用 verbose 的输出.

  • HUB_CONFIG:读取和存储 hub 配置的文件路径.如果存在”XDG_CONFIG_HOME”,则默认值为”$XDG_CONFIG_HOME/hub”; 否则为”$HOME/.config/hub”.每个 XDG 基础目录规范,也可在”XDG_CONFIG_DIRS”中搜索配置文件.

  • HUB_PROTOCOL:使用其中一个”https|ssh|git” 作为 git clone/push 的首选协议.

  • GITHUB_TOKEN:用于 Github API 请求的 OAuth 令牌.

BUGS

https://github.com/github/hub/问题

作者

https://github.com/github/hub/贡献者

更多

git(1), git-clone(1), git-remote(1), git-init(1), https://github.com/github/hub