Exploring the New GitHub CLI
source link: https://scotch.io/tutorials/exploring-the-new-github-cli
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
GitHub recently announced their new CLI offering. cli.github.com
Table of Contents
- Installing the GitHub CLI
- What can the GitHub CLI do?
- What is the difference between gh and hub?
- Working on Issues with the GitHub CLI
- Show the Status of Issues
- Working on Pull Requests with the GitHub CLI
- Checkout a Pull Request
- Creating a Pull Request
- List All Pull Requests
- Show the Status of Pull Requests
- View a Single Pull Request
It allows us to do GitHub work directly from the command line. This is more than just push
or pull
and is not tied directly to the Git command line tools. It is also not the same as GitHub’s hub CLI tool .
Installing the GitHub CLI
There are installers for Windows, Mac, and Linux. If you are on Mac, you can use Homebrew to install using:
brew install github/gh/gh
What can the GitHub CLI do?
The GitHub CLI is focused on our workflows as team developers. Here’s a quick list of GitHub CLI features that we can do from the command line:
- Issues:
- Create an issue
- List all issues (and filter)
- See status of an issue (and filter)
- View a single issue
- Pull Requests:
- Checkout a PR
- Create a PR
- List all PRs (and filter)
- See status of a PR (and filter)
- View a single PR
What is the difference between gh and hub?
gh and hub will both continue to work. From the GitHub CLI README :
"For many years, hub was the unofficial GitHub CLI tool. gh is a new project for us to explore what an official GitHub CLI tool can look like with a fundamentally different design. While both tools bring GitHub to the terminal, hub behaves as a proxy to git and gh is a standalone tool."
- GitHub CLI Features include Issues and Pull Requests
- hub Features include cloning/creating repos
Working on Issues with the GitHub CLI
Showing All Issues
gh issue list [flags] # flags can be: # -a, --assignee string Filter by assignee # -l, --label strings Filter by label # -L, --limit int Maximum number of issues to fetch (default 30) # -s, --state string Filter by state: {open|closed|all}
Creating an Issue
gh issue create [flags] # flags can be: # -b, --body string Supply a body. Will prompt for one otherwise. # -t, --title string Supply a title. Will prompt for one otherwise. # -w, --web Open the browser to create an issue
Show the Status of Issues
gh issue status [flags] # flags can be: # --help Show help for command # -R, --repo OWNER/REPO Select another repository using the OWNER/REPO format
View a Single Issue
gh issue view {<number> | <url> | <branch>} [flags] # example # gh issue view 8 # flags can be: # -p, --preview Display preview of issue content
Working on Pull Requests with the GitHub CLI
Checkout a Pull Request
gh pr checkout {<number> | <url> | <branch>} [flags] # example # gh pr checkout 12
Creating a Pull Request
gh pr create # flags can be: # -B, --base string The branch into which you want your code merged # -b, --body string Supply a body. Will prompt for one otherwise. # -d, --draft Mark pull request as a draft # -t, --title string Supply a title. Will prompt for one otherwise. # -w, --web Open the web browser to create a pull request
List All Pull Requests
gh pr list [flags] # flags can be: # -a, --assignee string Filter by assignee # -B, --base string Filter by base branch # -l, --label strings Filter by label # -L, --limit int Maximum number of items to fetch (default 30) # -s, --state string Filter by state: {open|closed|merged|all} (default "open")
Show the Status of Pull Requests
gh pr status [flags]
View a Single Pull Request
gh pr view [{<number> | <url> | <branch>}] [flags] # example # gh pr view 14
The GitHub CLI should help those out who work on repos with a lot of issues and PRs.
The GitHub CLI is still in early stages so give them feedback if you want to help out: https://forms.gle/umxd3h31c7aMQFKG7
Like this article? Follow @chrisoncode on Twitter
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK