在命令行上保持高效
hub 可以轻松克隆或创建存储库,浏览项目页面,列出已知问题,确保你的本地分支保持最新,以及通过 Gist 共享日志或代码片段。
hub clone dotfiles
→ git clone git://github.com/YOUR_USER/dotfiles.git
hub clone github/hub
→ git clone git://github.com/github/hub.git
cd myproject
hub sync
hub issue --limit 10
hub browse -- issues
→ open https://github.com/github/hub/issues
hub browse rbenv/ruby-build wiki
→ open https://github.com/rbenv/ruby-build/wiki
hub gist create --copy build.log
→ (the URL of the new private gist copied to clipboard)
开始新的项目从未如此简单
git init
git add .
git commit -m "And so, it begins."
hub create
→ (creates a new GitHub repository with the name of the current directory)
git push -u origin HEAD
为了乐趣和利润自动化任务
现在,你可以列出或创建问题、拉取请求和 GitHub 发布,并且格式自选,脚本化更容易。
hub issue --assignee YOUR_USER --labels urgent
hub pr list --limit 20 --base develop --format='%t [%H] | %U%n'
hub release create --copy -F release-notes.txt v2.3.0
→ (the URL of the new release copied to clipboard)
深入了解 API
即使 hub 不支持你需要的准确特性,你也可以使用 hub api
手动向任何 GitHub API 发起请求,且 hub 可以为你处理身份验证、JSON 编码/解码和分页操作,甚至包括 GraphQL。
hub api repos/{owner}/{repo}/issues/123/comments --field body=@mycomment.txt
REPO="github/hub"
SHA="b0db79db"
hub api graphql --flat -f q="repo:$REPO type:pr $SHA" -f query='
query($q: String!) {
search(query: $q, type: ISSUE, first: 3) {
nodes {
... on PullRequest {
url
}
}
}
}
' | awk '/\.url/ { print $2 }'
请参阅 hub-api-utils 了解更多示例。
专为开源维护人员设计
维护一个项目更容易,因为你可以轻松从其他分叉中提取,查看拉取请求,关闭问题,甚至按 URL cherry-pick 提交。
hub fetch mislav,cehoffman
→ git remote add mislav git://github.com/mislav/hub.git
→ git remote add cehoffman git://github.com/cehoffman/hub.git
→ git fetch --multiple mislav cehoffman
hub pr checkout 134
→ (creates a new branch with the contents of the pull request)
git push
hub issue update 134 --state closed
hub am -3 https://github.com/github/hub/pull/134
hub cherry-pick https://github.com/xoebus/hub/commit/177eeb8
hub compare v0.9..v1.0
hub compare --url feature | pbcopy