Why use GitHub CLI?
GitHub CLI brings GitHub to your terminal. It allows you to clone
, create
, fork
, and view repositories
, as well as handle issues
and pull
requests with commands to list
, create
, view
, and merge
them. You can also manage gists
, trigger
and review GitHub Actions workflows
, and make direct API requests. You also have authentication and configuration options are available to manage access and settings
, while search
functionalities help you find repositories
, issues
, and more.
Part 1: Install GithubCLI π¨
macOS π
gh is available via Homebrew, MacPorts, Conda, Spack, Webi, and as a downloadable binary including Mac OS installer .pkg
from the releases page.
# Homebrew
brew install gh
# MacPorts
sudo port install gh
# Conda
conda install gh --channel conda-forge
# Spack
spack install gh
# Webi
curl -sS https://webi.sh/gh | sh
Windows πͺ
gh is available via WinGet, scoop, Chocolatey, Conda, Webi, and as MSI installer.
# WinGet
winget install --id GitHub.cli
# scoop
scoop install gh
# Chocolatey
choco install gh
# Conda
conda install gh --channel conda-forge
# Spack
spack install gh
# Webi
curl -sS https://webi.sh/gh | sh
Linux π§
Here it really depends what you're using, here can you read the linux install documentation to find what you need, or check here the commands depending the distro you're using.
# Arch
sudo pacman -S github-cli
# Debian, Ubuntu Linux, Raspberry Pi OS (apt)
(type -p wget >/dev/null || (sudo apt update && sudo apt-get install wget -y)) \
&& sudo mkdir -p -m 755 /etc/apt/keyrings \
&& wget -qO- https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null \
&& sudo chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
&& sudo apt update \
&& sudo apt install gh -y
# Upgrade
sudo apt update
sudo apt install gh
# Fedora, CentOS, Red Hat Enterprise Linux (dnf)
sudo dnf install 'dnf-command(config-manager)'
sudo dnf config-manager --add-repo https://cli.github.com/packages/rpm/gh-cli.repo
sudo dnf install gh --repo gh-cli
#Alternatively, install from the community repository:
sudo dnf install gh
#Upgrade
sudo dnf update gh
# openSUSE/SUSE Linux (zypper)
sudo zypper addrepo https://cli.github.com/packages/rpm/gh-cli.repo
sudo zypper ref
sudo zypper install gh
# Upgrade
sudo zypper ref
sudo zypper update gh
Part 2: Log in π
First write in your terminal:
gh auth login
Here will ask you:
? What account do you want to log into? [Use arrows to move, type to filter]
> GitHub.com
GitHub Enterprise Server
If you choosed Github.com
it will ask you:
? What is your preferred protocol for Git operations on this host? [Use arrows to move, type to filter]
> HTTPS
SSH
Next it'll ask you your protocol and personal preference I recommend SSH
.
? What is your preferred protocol for Git operationInstall Github CLI in Linuxs on this host? [Use arrows to move, type to filter]
HTTPS
> SSH
Now just create the password
for your SSH Key
, the title and select how you'd like to autheticate, and if this is your first time just use Login with a web browser.
? Generate a new SSH key to add to your GitHub account? (Y/n) Y
Enter a passphrase for your new SSH key (Optional): **************************
? Title for your SSH key: (GitHub CLI) TheMachine-Desktop
? How would you like to authenticate GitHub CLI? [Use arrows to move, type to filter]
> Login with a web browser
Paste an authentication token
! First copy your one-time code: 1234-ABCD
Press Enter to open github.com in your browser...
π Congratulations π, now you can use Github from your terminal π₯οΈ.! if you write gh auth status
, you should get something like this:
$ gh auth status
github.com
β Logged in to github.com account username (/home/username/.config/gh/hosts.yml)
- Active account: true
- Git operations protocol: ssh
- Token: ...
- Token scopes: ....
Part 3: Useful commands π
Here I'll give you βMy TOP 5 commands in Github CLIπ so you can build an idea of what you are capable of doing, but feel free to checkout the documentation to gain a deeper knowledge of this tool.
1 - Clone a GitHub repository π₯: gh repo clone owner/repo
gh repo clone chrislgarry/Apollo-11
Bonus π:
Since you're using ssh
you can also go to this section of a GitHub repo:
git clone git@github.com:chrislgarry/Apollo-11.git
And you can view
the README.md
of the repo:
gh repo view chrislgarry/Apollo-11
2 - Create a new repository on GitHub π₯: gh repo create repo
, you can use flags like --public
, private
, --description <string>
and more.
gh repo create my-new-repo --public
3 - Create a new gist π₯: gh gist create <file>
gh gist create file.txt
Bonus π:
You can also list
them:
gh gist list
4 - Create a new issue π
: gh issue create --title <title> --body <body>
gh issue create --title "Issue title" --body "Issue body"
Bonus π:
You can alse create
issues:
gh issue create --title "Issue title" --body "Issue body"
view
issues:
gh issue view <issue-number>
And close
issues:
gh issue close <issue-number>
5 - List pull requests π: gh pr list
gh pr list
Bonus π:
You can also view
the pull request:
gh pr view <pr-number>
merge
a pull request:
gh pr merge <pr-number>
And review
it:
gh pr review --approve --body "Looks good!"
Final Thoughts π
GitHub CLI brings GitHub to your terminal, making it incredibly powerful! π I hope you found this post helpful and that it has inspired you to make the most of this tool. Donβt forget to subscribe for more updates for my future post! ππ₯οΈ
Sources π
Install Github CLI
Install Github CLI in Linux
Github CLI manual
Apollo 11 Code
Here I'd like to add a personal phrase, but I'm still thinking/looking for one π
Top comments (0)
Some comments may only be visible to logged-in visitors. Sign in to view all comments. Some comments have been hidden by the post's author - find out more