Git CLI - bring Github to the command line

Git CLI is the Github official command line tool

Hey there! I’m Srebalaji. You are receiving this email because you have subscribed to level up your game in Git.

Git CLI is one of the useful tools you can start using right away if you are a very active Github user.

You can visit the repo here.

This is still in beta but you can still use it. It brings PRs, issues, and other useful features of Github to the command line.

I will cover some commands that I find very useful. And you can also play around with the tool.

Listing Pull requests

You can list all the PRs of the repo.

gh pr list

There are options for filtering PRs with the assignee, base branch, labels.

Examples:

gh pr list --label "WIP, help" // List PRs with the provided labels

gh pr list --base "master" // List PRs with master as base

gh pr list --assignee "john" // List PRs with respective assignee

Creating a Pull request

Creating a PR is very easy with CLI. This can make you really productive.

gh pr create

The above command is a very basic option. This will create a PR with the master as the base branch and the current branch as the target branch.

There are other options as well for changing the base branch, labeling, assigning people, etc

Examples:

gh pr create --base develop // Here develop is the base branch

gh pr create --title "PR title" // Create a PR with title

gh pr create --reviewer "john, arya" // Assign reviewers

gh pr create --label "prod, help" // Assign labels

View Pull request change

gh pr diff <PR number / url>

Example
gh pr diff 3

The above command will show the diff of the respective PR. This will come in handy if you are looking for small changes in PR.

Creating an issue

Creating a simple issue from the CLI will come in handy often.

gh issue create --title "Search not working" --body "Search in main dashboard is not working"

The above command will create a new issue with the respective title and body.

There are like other useful options too

Examples

gh issue create --label "help, priority" // You can assign multiple labels

gh issue create --assignee "john, arya" // You can assign people

Listing issues

gh issue list

This will list all issues.

Examples

gh issue list --label "help, priority" // List issues by labels

gh issue list --assignee "john, arya" // List issues by assignees

gh isssue list --author "srebalaji" // Lists issues by people who created the issue

Creating gist

This is one of my favorites. You can create a public or private gist from the command line itself.

gh gist create main.js

The above command will create a private gist with the given file.

By default, gists are made private.

Other options,

gh gist create --public main.js // Creating a public gist

gh gist create main.js -d "NodeJS example" // Creating a gist with a description

gh gist create main.py copy.py home.py // Creating a gist with multiple files

Github CLI is a very useful command-line tool you can use. I have been using it for a couple of weeks and I can say it’s very useful. Of course, there are some hiccups but I believe it will be resolved in the upcoming versions.

Highly recommended if you are using Github often.

That’s it for today :)

See you next week :) :)