{"id":79424,"date":"2026-10-20T04:40:43","date_gmt":"2026-10-20T04:40:43","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=79424"},"modified":"2026-10-20T04:40:47","modified_gmt":"2026-10-20T04:40:47","slug":"how-to-install-github-cli-gh-on-macos-windows-and-linux-complete-step-by-step-guide","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/how-to-install-github-cli-gh-on-macos-windows-and-linux-complete-step-by-step-guide\/","title":{"rendered":"How to Install GitHub CLI (gh) on macOS, Windows, and Linux: Complete Step-by-Step Guide"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>SEO Title:<\/strong> How to Install GitHub CLI (gh) on Mac, Windows &amp; Linux \u2013 2026 Guide<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Meta Description:<\/strong> Learn how to install GitHub CLI (gh) on macOS, Windows 10\/11, Ubuntu, Debian, Fedora, RHEL, and CentOS. Includes commands, authentication, Git integration, updates, and troubleshooting.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Focus Keywords:<\/strong> GitHub CLI installation, install gh CLI, GitHub CLI Mac, GitHub CLI Windows, GitHub CLI Ubuntu, install gh Linux, GitHub CLI commands, gh auth login, GitHub CLI Homebrew<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">1. Introduction<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">GitHub is one of the most widely used platforms for hosting source code, managing pull requests, tracking issues, and automating software development workflows.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">While most developers interact with GitHub through a web browser, GitHub also provides an official command-line tool called <strong>GitHub CLI (<\/strong><code><strong>gh<\/strong><\/code><strong>)<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">GitHub CLI brings GitHub functionality directly into your terminal, allowing you to manage repositories, pull requests, issues, releases, and workflows without repeatedly switching to a browser.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Whether you are a developer, DevOps engineer, system administrator, platform engineer, or automation specialist, learning GitHub CLI can significantly simplify everyday development tasks.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this comprehensive tutorial, you will learn how to:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Install GitHub CLI on macOS, including Intel and Apple Silicon Macs.<\/li>\n\n\n\n<li>Install GitHub CLI on Windows 10 and Windows 11.<\/li>\n\n\n\n<li>Install GitHub CLI on Ubuntu and Debian.<\/li>\n\n\n\n<li>Install GitHub CLI on Fedora, RHEL, and CentOS.<\/li>\n\n\n\n<li>Install GitHub CLI on Amazon Linux and other Linux distributions.<\/li>\n\n\n\n<li>Verify that the installation was successful.<\/li>\n\n\n\n<li>Authenticate GitHub CLI with your GitHub account.<\/li>\n\n\n\n<li>Configure Git to use GitHub CLI authentication.<\/li>\n\n\n\n<li>Execute essential GitHub CLI commands.<\/li>\n\n\n\n<li>Upgrade, troubleshoot, and uninstall GitHub CLI.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Let&#8217;s begin.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2. What Is GitHub CLI?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">GitHub CLI is GitHub&#8217;s official open-source command-line tool.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Its executable is named:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">gh<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">It allows users to manage GitHub resources from a terminal using simple commands.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example, instead of visiting GitHub in your browser to review pull requests, you can execute:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">gh pr <span class=\"hljs-keyword\">list<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">To list repository issues:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">gh issue <span class=\"hljs-keyword\">list<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">To clone a GitHub repository:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">gh repo <span class=\"hljs-keyword\">clone<\/span> OWNER\/REPOSITORY<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">To check your authentication status:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">gh auth status<\/code><\/span><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Key Features of GitHub CLI<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Authenticate with GitHub.com and supported GitHub Enterprise installations.<\/li>\n\n\n\n<li>Create, view, review, and merge pull requests.<\/li>\n\n\n\n<li>Create and manage GitHub issues.<\/li>\n\n\n\n<li>Clone, fork, and manage repositories.<\/li>\n\n\n\n<li>View GitHub Actions workflows and workflow runs.<\/li>\n\n\n\n<li>Manage GitHub releases.<\/li>\n\n\n\n<li>Access the GitHub REST and GraphQL APIs.<\/li>\n\n\n\n<li>Integrate GitHub operations into scripts and automation.<\/li>\n\n\n\n<li>Work with GitHub from macOS, Windows, and Linux terminals.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Git vs. GitHub CLI: What Is the Difference?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Git and GitHub CLI serve different purposes.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><th>Feature<\/th><th>Git<\/th><th>GitHub CLI (<code>gh<\/code>)<\/th><\/tr><tr><td>Primary purpose<\/td><td>Version control<\/td><td>GitHub platform management<\/td><\/tr><tr><td>Command<\/td><td><code>git<\/code><\/td><td><code>gh<\/code><\/td><\/tr><tr><td>Commit code<\/td><td>Yes<\/td><td>Uses Git for normal version-control operations<\/td><\/tr><tr><td>Manage pull requests<\/td><td>Not directly<\/td><td>Yes<\/td><\/tr><tr><td>Manage GitHub issues<\/td><td>No<\/td><td>Yes<\/td><\/tr><tr><td>Clone repositories<\/td><td>Yes<\/td><td>Yes, through Git<\/td><\/tr><tr><td>Manage GitHub Actions<\/td><td>No<\/td><td>Yes<\/td><\/tr><tr><td>Manage GitHub releases<\/td><td>No<\/td><td>Yes<\/td><\/tr><tr><td>Access GitHub API<\/td><td>Not directly<\/td><td>Yes<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Important:<\/strong> GitHub CLI does not replace Git. It complements Git by providing commands for GitHub-specific workflows.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For normal repository operations, install both Git and GitHub CLI.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">3. Prerequisites<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Before installing GitHub CLI, make sure your computer meets the following requirements.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><th>Requirement<\/th><th>Description<\/th><\/tr><tr><td>Operating system<\/td><td>Supported macOS, Windows, or Linux<\/td><\/tr><tr><td>CPU architecture<\/td><td>Compatible architecture such as x86-64 or ARM64<\/td><\/tr><tr><td>Internet connection<\/td><td>Required to download packages and connect to GitHub<\/td><\/tr><tr><td>Terminal<\/td><td>Terminal, Bash, Zsh, PowerShell, or Command Prompt<\/td><\/tr><tr><td>Package manager<\/td><td>Homebrew, WinGet, APT, DNF, or another supported installer<\/td><\/tr><tr><td>GitHub account<\/td><td>Required for authenticated GitHub operations<\/td><\/tr><tr><td>Git<\/td><td>Recommended for repository operations<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">You can create a free GitHub account at:<\/p>\n\n\n\n<figure class=\"wp-block-embed\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/github.com\/signup\n<\/div><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Check Whether Git Is Installed<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">On macOS or Linux:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">git --version<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">On Windows PowerShell:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">git --version<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">If Git is installed, you will see its version.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">git<\/span> <span class=\"hljs-selector-tag\">version<\/span> 2<span class=\"hljs-selector-class\">.x<\/span><span class=\"hljs-selector-class\">.x<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">If Git is not installed, visit:<\/p>\n\n\n\n<figure class=\"wp-block-embed\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/git-scm.com\/downloads\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">You can install GitHub CLI independently, but Git should also be installed if you intend to clone repositories, commit changes, or push code.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">4. How to Install GitHub CLI on macOS<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The easiest and recommended way to install GitHub CLI on macOS is through Homebrew.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This method supports both Intel Macs and Apple Silicon devices.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Open Terminal<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Open the Terminal application:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Applications \u2192 Utilities \u2192 Terminal<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Alternatively, press <code>Command + Space<\/code>, search for Terminal, and open it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: Check macOS Version<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Execute:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sw_vers<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Example:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"HTTP\" data-shcb-language-slug=\"http\"><span><code class=\"hljs language-http\"><span class=\"hljs-attribute\">ProductName<\/span>: macOS\n<span class=\"hljs-attribute\">ProductVersion<\/span>: 26.x\n<span class=\"hljs-attribute\">BuildVersion<\/span>: ...<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTTP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">http<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Check your processor architecture:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">uname -m<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For Apple Silicon, the output is:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">arm64<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For Intel Macs:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">x86_64<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Homebrew selects the appropriate compatible package for your setup.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: Check Whether Homebrew Is Installed<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Run:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">brew --version<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">If Homebrew is installed, the version information will appear.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you receive:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"HTTP\" data-shcb-language-slug=\"http\"><span><code class=\"hljs language-http\"><span class=\"hljs-attribute\">zsh<\/span>: command not found: brew<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTTP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">http<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Homebrew may not be installed or configured in your shell.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Install Homebrew using the official installer:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">\/bin\/bash -c <span class=\"hljs-string\">\"$(curl -fsSL https:\/\/raw.githubusercontent.com\/Homebrew\/install\/HEAD\/install.sh)\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Review the script and its permissions before running it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">After installation, follow any instructions printed by the installer to configure the Homebrew shell environment.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Verify:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">brew --version<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Step 4: Update Homebrew<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Before installing GitHub CLI, refresh Homebrew:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">brew update<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This updates Homebrew&#8217;s package metadata.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 5: Install GitHub CLI<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Run:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">brew install gh<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Homebrew downloads and installs GitHub CLI.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The executable becomes available through your configured Homebrew command path.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 6: Verify GitHub CLI Installation<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Execute:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">gh --version<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Example output:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">gh version <span class=\"hljs-number\">2.<\/span>x.x\n<span class=\"hljs-attr\">https<\/span>:<span class=\"hljs-comment\">\/\/github.com\/cli\/cli\/releases\/tag\/v2.x.x<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Your actual version may be newer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Display available commands:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">gh --help<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">If GitHub CLI displays command information, the installation has succeeded.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 7: Find the GitHub CLI Executable<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Execute:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">which gh<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Or:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">command -v gh<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For Apple Silicon Macs, the path commonly looks like:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">\/opt\/homebrew\/bin\/gh<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For Intel Macs:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">\/usr\/local\/bin\/gh<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The actual location depends on your Homebrew configuration.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 8: Verify the Homebrew Package<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Run:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">brew <span class=\"hljs-keyword\">list<\/span> --versions gh<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">You can also inspect package information:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">brew info gh<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\"><strong>GitHub CLI is now successfully installed on macOS.<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Alternative: Install GitHub CLI Without Homebrew<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">If you do not want to use Homebrew, download the official macOS binary or installer from:<\/p>\n\n\n\n<figure class=\"wp-block-embed\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/github.com\/cli\/cli\/releases\/latest\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Select the package matching your processor architecture and follow the installation instructions included with that release.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For routine macOS development, Homebrew is generally the simplest option.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">5. How to Install GitHub CLI on Windows 10 and Windows 11<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">GitHub officially supports installing GitHub CLI on Windows through WinGet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">WinGet is Microsoft&#8217;s Windows Package Manager.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Method 1: Install GitHub CLI Using WinGet (Recommended)<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1: Open PowerShell<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Open Windows PowerShell or PowerShell 7.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can search for PowerShell from the Windows Start menu.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2: Check Whether WinGet Is Installed<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Execute:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">winget --version<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">If available, WinGet displays its installed version.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If Windows reports that <code>winget<\/code> is not recognized, install or update <strong>App Installer<\/strong> through Microsoft&#8217;s supported distribution method.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">WinGet is included in modern supported Windows environments through App Installer.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3: Search for GitHub CLI<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Run:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">winget<\/span> <span class=\"hljs-selector-tag\">search<\/span> <span class=\"hljs-selector-tag\">GitHub<\/span><span class=\"hljs-selector-class\">.cli<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The search should return GitHub CLI.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The package identifier is:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-11\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">GitHub<\/span><span class=\"hljs-selector-class\">.cli<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-11\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Step 4: Install GitHub CLI<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Execute:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-12\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">winget<\/span> <span class=\"hljs-selector-tag\">install<\/span> <span class=\"hljs-selector-tag\">--id<\/span> <span class=\"hljs-selector-tag\">GitHub<\/span><span class=\"hljs-selector-class\">.cli<\/span> <span class=\"hljs-selector-tag\">--source<\/span> <span class=\"hljs-selector-tag\">winget<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-12\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">WinGet downloads the GitHub CLI package and starts its installation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Accept any required package agreements and installation prompts.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 5: Open a New Terminal<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">After installation, close the existing Windows Terminal or PowerShell window and open a new one.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Important:<\/strong> The installer updates the Windows PATH. When using Windows Terminal, a completely new window may be needed; opening only a new tab may not refresh the environment.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 6: Verify the Installation<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Run:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">gh --version<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Display help:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">gh --help<\/code><\/span><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Step 7: Locate the Executable<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Execute:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Get-Command gh<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Or:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-13\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">where<\/span><span class=\"hljs-selector-class\">.exe<\/span> <span class=\"hljs-selector-tag\">gh<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-13\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">These commands identify the executable Windows is using.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 8: Confirm the Installed Package<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Run:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-14\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">winget<\/span> <span class=\"hljs-selector-tag\">list<\/span> <span class=\"hljs-selector-tag\">--id<\/span> <span class=\"hljs-selector-tag\">GitHub<\/span><span class=\"hljs-selector-class\">.cli<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-14\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">If the package appears, GitHub CLI is installed and managed through WinGet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>GitHub CLI is ready on Windows.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Method 2: Install GitHub CLI Using Scoop<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If you already use the Scoop package manager, you can install GitHub CLI through Scoop.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Execute:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">scoop install gh<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Verify:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">gh --version<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">To upgrade later:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">scoop update gh<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This method assumes Scoop is already installed.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Method 3: Install GitHub CLI Using Chocolatey<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For systems that already use Chocolatey, run:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">choco install gh -y<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Verify:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">gh --version<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">To upgrade:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">choco upgrade gh -y<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The Scoop and Chocolatey package distributions are community-supported installation alternatives.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Method 4: Install GitHub CLI Using an MSI Installer<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If WinGet is unavailable, you can install GitHub CLI using the official MSI package.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1: Download the Installer<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Visit:<\/p>\n\n\n\n<figure class=\"wp-block-embed\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/github.com\/cli\/cli\/releases\/latest\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Download the Windows MSI installer matching your architecture.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">An x64 installer normally follows a naming convention similar to:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-15\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\">gh_<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">version<\/span>&gt;<\/span>_windows_amd64.msi<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-15\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The actual filename depends on the release.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2: Run the Installer<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Double-click the downloaded MSI package.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Follow the installation wizard.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Administrator permissions may be required depending on the installation settings and system policies.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3: Reopen PowerShell<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Open a new PowerShell window and execute:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">gh --version<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Then:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">gh --help<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">If both commands work, the installation was successful.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">6. How to Install GitHub CLI on Ubuntu and Debian Linux<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">GitHub provides an official APT repository for Ubuntu, Debian, and compatible distributions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Using this repository is recommended because distribution-maintained packages can lag behind official releases.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Check Your Linux Distribution<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Execute:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">cat \/etc\/os-release<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Check CPU architecture:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">uname -m<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Example output:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">x86_64<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Or:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">aarch64<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Step 2: Update Package Information<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Run:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo apt update<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Step 3: Install Required Utilities<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Execute:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo apt install -y wget ca-certificates<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">These packages provide file downloading and trusted CA certificate support.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4: Create the APT Keyring Directory<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Run:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo mkdir -p -m 755 \/etc\/apt\/keyrings<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Step 5: Download GitHub CLI&#8217;s Repository Signing Key<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Execute:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-16\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">tmp_keyring=$(mktemp)\n\nwget -q -O <span class=\"hljs-string\">\"$tmp_keyring\"<\/span> \\\n  <span class=\"hljs-attr\">https<\/span>:<span class=\"hljs-comment\">\/\/cli.github.com\/packages\/githubcli-archive-keyring.gpg<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-16\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Install the downloaded keyring:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-17\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">sudo install -m <span class=\"hljs-number\">644<\/span> <span class=\"hljs-string\">\"$tmp_keyring\"<\/span> \\\n  \/etc\/apt\/keyrings\/githubcli-archive-keyring.gpg<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-17\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Remove the temporary download:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-18\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">rm -f <span class=\"hljs-string\">\"$tmp_keyring\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-18\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This registers the repository signing key for GitHub CLI.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Security note:<\/strong> GitHub CLI rotated its Linux repository signing keys effective September 5, 2026. If you have an older repository configuration, update the keyring using the current official documentation rather than disabling APT signature verification.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">GitHub publishes the current signing key fingerprints in its Linux installation guide.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 6: Add the GitHub CLI APT Repository<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Execute:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-19\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-string\">\"deb &#91;arch=$(dpkg --print-architecture) signed-by=\/etc\/apt\/keyrings\/githubcli-archive-keyring.gpg] https:\/\/cli.github.com\/packages stable main\"<\/span> \\\n  | sudo tee \/etc\/apt\/sources.<span class=\"hljs-keyword\">list<\/span>.d\/github-cli.<span class=\"hljs-keyword\">list<\/span> &gt; \/dev\/<span class=\"hljs-keyword\">null<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-19\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This creates an APT source entry for GitHub CLI.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 7: Update Package Metadata<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Run:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo apt update<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">APT refreshes the package metadata, including the GitHub CLI repository.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 8: Install GitHub CLI<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Execute:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo apt install -y gh<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">APT downloads and installs the official GitHub CLI package.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 9: Verify Installation<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Run:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">gh --version<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Display help:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">gh --help<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Locate the executable:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">command -v gh<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Check the package:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">dpkg -l gh<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Step 10: Inspect the Package Source<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Execute:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">apt-cache policy gh<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This displays the installed and candidate versions and helps identify the repository from which APT obtained the package.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>GitHub CLI is successfully installed on Ubuntu or Debian.<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">7. How to Install GitHub CLI on Fedora, RHEL, and CentOS<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">GitHub maintains official RPM packages that can be installed using DNF.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The commands differ slightly between DNF4 and DNF5.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Check Your Linux Version<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Run:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">cat \/etc\/os-release<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Check the package manager version:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">dnf --version<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">If your system uses DNF5, follow Method 1.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If it uses DNF4, follow Method 2.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Method 1: Install GitHub CLI Using DNF5<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1: Install DNF5 Plugins<\/h3>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo dnf install -y dnf5-plugins<\/code><\/span><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Step 2: Add the Official GitHub CLI Repository<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-20\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">sudo dnf config-manager addrepo \\\n  --<span class=\"hljs-keyword\">from<\/span>-repofile=https:<span class=\"hljs-comment\">\/\/cli.github.com\/packages\/rpm\/gh-cli.repo<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-20\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Step 3: Install GitHub CLI<\/h3>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo dnf install -y gh<\/code><\/span><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Step 4: Verify Installation<\/h3>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">gh --version<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Check the package:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">rpm -q gh<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Method 2: Install GitHub CLI Using DNF4<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1: Install the Repository Management Plugin<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-21\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">sudo dnf install -y <span class=\"hljs-string\">'dnf-command(config-manager)'<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-21\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Step 2: Add the GitHub CLI RPM Repository<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-22\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">sudo dnf config-manager --add-repo \\\n  <span class=\"hljs-attr\">https<\/span>:<span class=\"hljs-comment\">\/\/cli.github.com\/packages\/rpm\/gh-cli.repo<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-22\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Step 3: Install GitHub CLI<\/h3>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo dnf install -y gh<\/code><\/span><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Step 4: Verify Installation<\/h3>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">gh --version<\/code><\/span><\/pre>\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">gh --help<\/code><\/span><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Alternative: Fedora Community Repository<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Fedora also provides a community-maintained package.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can install it with:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo dnf install gh<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">However, the GitHub-maintained repository is preferable when you require releases published directly by the GitHub CLI maintainers.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">8. Install GitHub CLI on Amazon Linux<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">For Amazon Linux 2, GitHub documents installation through its official RPM repository.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Check the Operating System<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">cat \/etc\/os-release<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Confirm that your system is Amazon Linux 2 before using these YUM-specific instructions.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: Install YUM Repository Utilities<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo yum install -y yum-utils<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Step 3: Add the GitHub CLI Repository<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-23\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">sudo yum-config-manager --add-repo \\\n  <span class=\"hljs-attr\">https<\/span>:<span class=\"hljs-comment\">\/\/cli.github.com\/packages\/rpm\/gh-cli.repo<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-23\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Step 4: Install GitHub CLI<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo yum install -y gh<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Step 5: Verify Installation<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">gh --version<\/code><\/span><\/pre>\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">command -v gh<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For Amazon Linux 2023, check the supported DNF repository instructions appropriate to the installed DNF version.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">9. Install GitHub CLI on Other Linux Distributions<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">GitHub CLI is also available on several additional distributions.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Arch Linux<\/h3>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo pacman -S github-cli<\/code><\/span><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Alpine Linux<\/h3>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo apk add github-cli<\/code><\/span><\/pre>\n\n\n<h3 class=\"wp-block-heading\">openSUSE and SUSE Linux<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Add the official RPM repository:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-24\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">sudo zypper addrepo \\\n  <span class=\"hljs-attr\">https<\/span>:<span class=\"hljs-comment\">\/\/cli.github.com\/packages\/rpm\/gh-cli.repo<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-24\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Refresh repositories:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo zypper ref<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Install GitHub CLI:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo zypper install gh<\/code><\/span><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Linux with Homebrew<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">If Homebrew is already installed:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">brew install gh<\/code><\/span><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Alternative: Download Standalone Binaries<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Official GitHub CLI binaries are also available from:<\/p>\n\n\n\n<figure class=\"wp-block-embed\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/github.com\/cli\/cli\/releases\/latest\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Download the archive matching your operating system and processor architecture.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Verify the archive&#8217;s authenticity before extracting and installing it.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">10. How to Authenticate GitHub CLI<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">After installing GitHub CLI, you need to authenticate with your GitHub account to access private repositories and perform authorized GitHub operations.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Start GitHub Authentication<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Execute:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">gh auth login<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The CLI starts an interactive authentication process.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You may be prompted with options similar to:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-25\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">? Where <span class=\"hljs-keyword\">do<\/span> you <span class=\"hljs-keyword\">use<\/span> <span class=\"hljs-title\">GitHub<\/span>?\n&gt; <span class=\"hljs-title\">GitHub<\/span>.<span class=\"hljs-title\">com<\/span>\n  <span class=\"hljs-title\">Other<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-25\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Select GitHub.com unless you use a GitHub Enterprise host.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: Choose Your Git Protocol<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">GitHub CLI asks which protocol you want to use for Git operations.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Typical choices are:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">HTTPS\nSSH<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For beginners, HTTPS is often easier to configure.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">SSH is useful if you already manage SSH keys for Git operations.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: Authenticate Through Your Browser<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Select browser-based authentication.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Alternatively, start the browser flow directly:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">gh auth login --web<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">To copy the temporary authentication code to your clipboard:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">gh auth login --web --clipboard<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The CLI initiates the GitHub device authentication process.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If required, visit:<\/p>\n\n\n\n<figure class=\"wp-block-embed\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/github.com\/login\/device\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Enter the one-time code displayed in your terminal and approve the authorization.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4: Verify GitHub Authentication<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">After login, execute:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">gh auth status<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This shows the configured authentication state for known GitHub hosts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It can display the active account, authentication method, and stored credential information without revealing the token by default.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 5: Configure Git Credential Integration<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For HTTPS-based Git authentication, execute:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">gh auth setup-git<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This configures Git to use GitHub CLI as a credential helper for authenticated hosts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It can simplify authenticated Git operations such as:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-26\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">git <span class=\"hljs-keyword\">clone<\/span>\ngit fetch\ngit pull\ngit push<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-26\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">When using SSH, make sure your SSH key is correctly configured and authorized for GitHub.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 6: Confirm Everything Works<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Run:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">gh repo view cli\/cli<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This displays information about GitHub CLI&#8217;s own public repository.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If repository details appear, the CLI can successfully communicate with GitHub.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">11. Essential GitHub CLI Commands for Beginners<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">After installing and authenticating GitHub CLI, try these commands.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Check CLI Version<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">gh --version<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Check Authentication Status<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">gh auth status<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">List Your Repositories<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-27\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">gh repo <span class=\"hljs-keyword\">list<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-27\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">To display more results:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-28\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">gh repo <span class=\"hljs-keyword\">list<\/span> --limit <span class=\"hljs-number\">50<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-28\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">View a Repository<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">gh repo view cli\/cli<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Clone a Repository<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-29\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">gh repo <span class=\"hljs-keyword\">clone<\/span> cli\/cli<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-29\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This creates a local copy of the repository in your current directory.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">List GitHub Issues<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Within a GitHub repository:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-30\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">gh issue <span class=\"hljs-keyword\">list<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-30\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Or specify the repository explicitly:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-31\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">gh issue <span class=\"hljs-keyword\">list<\/span> --repo cli\/cli<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-31\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">List Pull Requests<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-32\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">gh pr <span class=\"hljs-keyword\">list<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-32\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For a specific repository:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-33\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">gh pr <span class=\"hljs-keyword\">list<\/span> --repo cli\/cli<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-33\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Check Pull Request Status<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">gh pr status<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Create a Pull Request<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">When you are working on a branch with changes ready for review:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">gh pr create<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">To prefill the title and description from commits:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">gh pr create --fill<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This operation creates a real pull request after any required prompts and permissions checks.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">View GitHub Actions Workflows<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-34\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">gh workflow <span class=\"hljs-keyword\">list<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-34\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">View GitHub Actions Runs<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-35\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">gh run <span class=\"hljs-keyword\">list<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-35\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">List GitHub Releases<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-36\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">gh release <span class=\"hljs-keyword\">list<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-36\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Execute a GitHub API Request<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For example, retrieve the authenticated user&#8217;s information:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">gh api user<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This returns JSON data from the GitHub API.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Log Out<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">gh auth logout<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">You can also target GitHub.com explicitly:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-37\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">gh<\/span> <span class=\"hljs-selector-tag\">auth<\/span> <span class=\"hljs-selector-tag\">logout<\/span> <span class=\"hljs-selector-tag\">--hostname<\/span> <span class=\"hljs-selector-tag\">github<\/span><span class=\"hljs-selector-class\">.com<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-37\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">12. Configure GitHub CLI Settings<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">GitHub CLI provides configuration commands for customizing its behavior.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">View Current Configuration<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-38\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">gh config <span class=\"hljs-keyword\">list<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-38\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Configure HTTPS for Git Operations<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-39\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">gh config <span class=\"hljs-keyword\">set<\/span> git_protocol https --host github.com<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-39\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Configure SSH for Git Operations<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-40\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">gh config <span class=\"hljs-keyword\">set<\/span> git_protocol ssh --host github.com<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-40\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Use SSH only after ensuring that the appropriate SSH keys are configured.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Configure VS Code as the Default Editor<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-41\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">gh config <span class=\"hljs-keyword\">set<\/span> editor \"code --wait\"<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-41\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This requires the VS Code <code>code<\/code> command to be available in PATH.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Configure Vim as the Default Editor<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-42\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">gh config <span class=\"hljs-keyword\">set<\/span> editor vim<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-42\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Check a Configuration Value<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-43\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">gh config <span class=\"hljs-keyword\">get<\/span> git_protocol<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-43\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Configuration settings allow you to tailor GitHub CLI to your preferred development workflow.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">13. How to Update GitHub CLI<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">GitHub CLI receives ongoing updates, so keeping your installation current is recommended.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The upgrade procedure depends on your installation method.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">macOS<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">brew update\nbrew upgrade gh<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Windows \u2014 WinGet<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-44\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">winget<\/span> <span class=\"hljs-selector-tag\">upgrade<\/span> <span class=\"hljs-selector-tag\">--id<\/span> <span class=\"hljs-selector-tag\">GitHub<\/span><span class=\"hljs-selector-class\">.cli<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-44\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Windows \u2014 Scoop<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">scoop update gh<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Windows \u2014 Chocolatey<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">choco upgrade gh<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Ubuntu\/Debian<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo apt update\nsudo apt install gh<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Fedora\/RHEL\/CentOS<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo dnf update gh<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Amazon Linux 2<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo yum update gh<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Arch Linux<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo pacman -Syu<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">After upgrading, always verify:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">gh --version<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For automated production environments, consider pinning a tested GitHub CLI release rather than automatically updating to every newly published version.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">14. Troubleshooting GitHub CLI Installation Errors<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The following table covers common installation and authentication issues.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><th>Error or symptom<\/th><th>Likely cause<\/th><th>Troubleshooting<\/th><\/tr><tr><td><code>gh: command not found<\/code><\/td><td>CLI missing or PATH not configured<\/td><td>Verify installation and executable path<\/td><\/tr><tr><td><code>zsh: command not found: brew<\/code><\/td><td>Homebrew not installed or not on PATH<\/td><td>Install\/configure Homebrew<\/td><\/tr><tr><td><code>gh is not recognized<\/code><\/td><td>Windows PATH not refreshed<\/td><td>Open a new terminal and check PATH<\/td><\/tr><tr><td><code>winget is not recognized<\/code><\/td><td>WinGet unavailable<\/td><td>Install or update Windows App Installer<\/td><\/tr><tr><td><code>Unable to locate package gh<\/code><\/td><td>APT repository missing or outdated<\/td><td>Check official repository and run <code>apt update<\/code><\/td><\/tr><tr><td><code>NO_PUBKEY<\/code> or GPG error<\/td><td>Missing, outdated, or incorrect repository signing key<\/td><td>Reinstall the current official keyring<\/td><\/tr><tr><td><code>exec format error<\/code><\/td><td>Incorrect binary architecture<\/td><td>Download the appropriate binary<\/td><\/tr><tr><td><code>HTTP 401<\/code><\/td><td>Authentication missing or invalid<\/td><td>Check <code>gh auth status<\/code> and reauthenticate<\/td><\/tr><tr><td><code>HTTP 403<\/code><\/td><td>Insufficient permissions or policy restrictions<\/td><td>Review account, token, and repository access<\/td><\/tr><tr><td><code>Permission denied (publickey)<\/code><\/td><td>SSH authentication failure<\/td><td>Verify SSH key and remote configuration<\/td><\/tr><tr><td>Git push authentication fails<\/td><td>Git credential helper or remote configuration issue<\/td><td>Inspect remote URL and configure <code>gh auth setup-git<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Troubleshooting 1: gh Command Not Found on macOS<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Execute:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">command -v gh<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Verify the Homebrew package:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-45\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">brew <span class=\"hljs-keyword\">list<\/span> --versions gh<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-45\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Check the PATH:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-46\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\"><span class=\"hljs-keyword\">echo<\/span> <span class=\"hljs-string\">\"$PATH\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-46\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">If the package is installed but the executable is not available, confirm Homebrew is properly configured in the shell.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Troubleshooting 2: gh Not Recognized on Windows<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Run:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Get-Command gh<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Check PATH:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-47\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">$env:Path<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-47\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">If GitHub CLI was just installed through MSI or WinGet, close Windows Terminal completely and open it again.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If the command remains unavailable, inspect the installer status and the actual location of <code>gh.exe<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Troubleshooting 3: APT Cannot Locate the gh Package<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">First check the configured repository:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-48\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">cat \/etc\/apt\/sources.<span class=\"hljs-keyword\">list<\/span>.d\/github-cli.<span class=\"hljs-keyword\">list<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-48\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Refresh metadata:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo apt update<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Check package availability:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">apt-cache policy gh<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">If the official GitHub CLI repository is missing, configure it using the instructions in Section 6.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If the package repository reports a signature verification problem, correct the repository signing key instead of bypassing package signature checks.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Troubleshooting 4: GitHub CLI Authentication Failed<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Run:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">gh auth status<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">If authentication is invalid or missing, repeat login:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">gh auth login<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For browser-based authentication:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">gh auth login --web<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">If using GitHub Enterprise, specify the correct host:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-49\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">gh<\/span> <span class=\"hljs-selector-tag\">auth<\/span> <span class=\"hljs-selector-tag\">login<\/span> <span class=\"hljs-selector-tag\">--hostname<\/span> <span class=\"hljs-selector-tag\">github<\/span><span class=\"hljs-selector-class\">.example<\/span><span class=\"hljs-selector-class\">.com<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-49\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Replace <code>github.example.com<\/code> with your organization&#8217;s actual GitHub Enterprise hostname.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Troubleshooting 5: SSH Permission Denied<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Example:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-50\" data-shcb-language-name=\"HTTP\" data-shcb-language-slug=\"http\"><span><code class=\"hljs language-http\"><span class=\"hljs-attribute\">git@github.com<\/span>: Permission denied (publickey).<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-50\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTTP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">http<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This typically indicates an SSH authentication problem rather than a GitHub CLI installation issue.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Inspect your SSH connection:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-51\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">ssh<\/span> <span class=\"hljs-selector-tag\">-T<\/span> <span class=\"hljs-selector-tag\">git<\/span><span class=\"hljs-keyword\">@github<\/span>.com<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-51\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Check the Git remote:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">git remote -v<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">If your Git remote uses HTTPS instead, you can configure GitHub CLI as the credential helper:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">gh auth setup-git<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For SSH-based operations, verify that a valid SSH key is registered with your GitHub account.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Troubleshooting 6: Multiple Versions of gh Installed<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">On macOS or Linux:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">type -a gh<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">On Windows:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Get-Command gh -All<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">This helps identify multiple installations.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example, one executable may come from a package manager and another from a manually downloaded binary.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Make sure your PATH resolves to the intended installation.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">15. How to Uninstall GitHub CLI<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">If you no longer need GitHub CLI, remove it using the package manager that installed it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">macOS<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">brew uninstall gh<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Windows \u2014 WinGet<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-52\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">winget<\/span> <span class=\"hljs-selector-tag\">uninstall<\/span> <span class=\"hljs-selector-tag\">--id<\/span> <span class=\"hljs-selector-tag\">GitHub<\/span><span class=\"hljs-selector-class\">.cli<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-52\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Windows \u2014 Scoop<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">scoop uninstall gh<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Windows \u2014 Chocolatey<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">choco uninstall gh<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Ubuntu\/Debian<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo apt remove gh<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Fedora\/RHEL\/CentOS<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo dnf remove gh<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Amazon Linux 2<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo yum remove gh<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Arch Linux<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo pacman -R github-cli<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Removing the executable does not necessarily remove all stored configuration or credentials.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you want to disconnect your GitHub account before uninstalling, run:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">gh auth logout<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Be aware that logging out of GitHub CLI does not automatically revoke all previously issued credentials on the GitHub server. Revoke access through GitHub account settings if needed.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">16. GitHub CLI Installation Cheat Sheet<\/h1>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><th>Operating system<\/th><th>Recommended command<\/th><\/tr><tr><td>macOS Intel<\/td><td><code>brew install gh<\/code><\/td><\/tr><tr><td>macOS Apple Silicon<\/td><td><code>brew install gh<\/code><\/td><\/tr><tr><td>Windows 10\/11<\/td><td><code>winget install --id GitHub.cli<\/code><\/td><\/tr><tr><td>Windows with Scoop<\/td><td><code>scoop install gh<\/code><\/td><\/tr><tr><td>Windows with Chocolatey<\/td><td><code>choco install gh<\/code><\/td><\/tr><tr><td>Ubuntu\/Debian<\/td><td>Configure official repository, then <code>sudo apt install gh<\/code><\/td><\/tr><tr><td>Fedora with DNF<\/td><td>Configure official repository, then <code>sudo dnf install gh<\/code><\/td><\/tr><tr><td>RHEL\/CentOS<\/td><td>Configure official RPM repository, then <code>sudo dnf install gh<\/code><\/td><\/tr><tr><td>Amazon Linux 2<\/td><td>Configure official RPM repository, then <code>sudo yum install gh<\/code><\/td><\/tr><tr><td>Arch Linux<\/td><td><code>sudo pacman -S github-cli<\/code><\/td><\/tr><tr><td>Alpine Linux<\/td><td><code>sudo apk add github-cli<\/code><\/td><\/tr><tr><td>openSUSE<\/td><td>Configure official repository, then <code>sudo zypper install gh<\/code><\/td><\/tr><tr><td>Verify installation<\/td><td><code>gh --version<\/code><\/td><\/tr><tr><td>Authenticate<\/td><td><code>gh auth login<\/code><\/td><\/tr><tr><td>Check authentication<\/td><td><code>gh auth status<\/code><\/td><\/tr><tr><td>Configure Git credentials<\/td><td><code>gh auth setup-git<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">17. Frequently Asked Questions<\/h1>\n\n\n\n<h3 class=\"wp-block-heading\">Q1. Is GitHub CLI free?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes. GitHub CLI is free and open source.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Some operations may interact with GitHub features or resources that have separate usage limits or billing requirements.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Q2. Do I need Git installed to use GitHub CLI?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">GitHub CLI can be installed independently of Git.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">However, normal Git repository operations require Git, so installing both is recommended.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Q3. Can GitHub CLI be installed on Apple Silicon Macs?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes. GitHub CLI supports Apple Silicon through compatible macOS packages, including Homebrew.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Q4. Does GitHub CLI work on Windows 11?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes. GitHub CLI supports Windows and can be installed using WinGet or an official MSI installer.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Q5. Can I use GitHub CLI without opening a browser?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes, certain operations work without browser interaction.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For authentication on a workstation, the standard browser-based authorization is usually convenient. For automation, GitHub CLI supports suitable authentication tokens supplied through environment variables.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Q6. Can GitHub CLI be used in GitHub Actions?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes. GitHub CLI is preinstalled on GitHub-hosted Actions runners.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For workflows that need GitHub authentication, configure the appropriate token and permissions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example, within a GitHub Actions workflow:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">env:\n  GH_TOKEN: ${{ github.token }}<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The workflow&#8217;s permissions must allow the requested operations.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Q7. Can GitHub CLI manage private repositories?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes, provided the authenticated identity has access to those repositories and sufficient permissions for the requested commands.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Q8. Can I use GitHub CLI with multiple GitHub accounts?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes. GitHub CLI supports managing authenticated accounts and switching the active account.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can inspect the authentication state:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">gh auth status<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">And switch among configured accounts:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-53\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">gh auth <span class=\"hljs-keyword\">switch<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-53\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Q9. Can GitHub CLI connect to GitHub Enterprise?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes. GitHub CLI supports GitHub.com, GitHub Enterprise Cloud, and supported GitHub Enterprise Server versions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can specify a host with:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-54\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">gh<\/span> <span class=\"hljs-selector-tag\">auth<\/span> <span class=\"hljs-selector-tag\">login<\/span> <span class=\"hljs-selector-tag\">--hostname<\/span> <span class=\"hljs-selector-tag\">github<\/span><span class=\"hljs-selector-class\">.example<\/span><span class=\"hljs-selector-class\">.com<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-54\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Q10. Is GitHub CLI better than using the GitHub website?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Neither replaces the other completely.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">GitHub CLI is particularly useful for repetitive operations, terminal-centric development, scripting, CI\/CD, and automation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The web interface remains valuable for visual reviews, repository administration, and more complex collaboration tasks.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">18. GitHub CLI Best Practices<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">For secure and reliable use, follow these guidelines:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Install GitHub CLI from official package repositories or trusted installers.<\/li>\n\n\n\n<li>Keep your CLI version updated with security and compatibility fixes.<\/li>\n\n\n\n<li>Use a secure authentication method and avoid exposing credentials.<\/li>\n\n\n\n<li>Prefer short-lived, appropriately scoped credentials for automation.<\/li>\n\n\n\n<li>Never commit access tokens or credentials to Git repositories.<\/li>\n\n\n\n<li>Avoid passing sensitive tokens directly as command-line arguments.<\/li>\n\n\n\n<li>Verify the active GitHub account and target repository before modifying resources.<\/li>\n\n\n\n<li>Use GitHub CLI as a Git credential helper when appropriate for HTTPS workflows.<\/li>\n\n\n\n<li>Review permissions before executing commands that modify repositories, issues, workflows, or releases.<\/li>\n\n\n\n<li>Pin tested CLI versions in reproducible CI\/CD environments.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">For automation, prefer securely supplied environment variables such as <code>GH_TOKEN<\/code> rather than interactive <code>gh auth login<\/code> sessions.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">19. Conclusion<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">GitHub CLI (<code>gh<\/code>) is an essential command-line tool for developers, DevOps engineers, platform engineers, and anyone working extensively with GitHub.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It simplifies repository administration, pull request management, issue tracking, GitHub Actions monitoring, and automation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Installation is straightforward across major operating systems:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>macOS:<\/strong> Install through Homebrew using <code>brew install gh<\/code>.<\/li>\n\n\n\n<li><strong>Windows:<\/strong> Install through WinGet using <code>winget install --id GitHub.cli<\/code>.<\/li>\n\n\n\n<li><strong>Ubuntu\/Debian:<\/strong> Install using the official GitHub CLI APT repository.<\/li>\n\n\n\n<li><strong>Fedora\/RHEL\/CentOS:<\/strong> Install from GitHub&#8217;s official RPM repository using DNF.<\/li>\n\n\n\n<li><strong>Other Linux systems:<\/strong> Use the appropriate package manager or an official standalone binary.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">After installation, the three most important commands are:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">gh --version\ngh auth login\ngh auth status<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Once GitHub CLI is installed and authenticated, you can manage your GitHub development workflows directly from your terminal, reduce context switching, and build more efficient automation.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Official Documentation and References<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>GitHub CLI Official Website:<\/strong> <a href=\"https:\/\/cli.github.com\/\">https:\/\/cli.github.com\/<\/a><\/li>\n\n\n\n<li><strong>GitHub CLI GitHub Repository:<\/strong> <a href=\"https:\/\/github.com\/cli\/cli\">https:\/\/github.com\/cli\/cli<\/a><\/li>\n\n\n\n<li><strong>Official Linux Installation Guide:<\/strong> <a href=\"https:\/\/github.com\/cli\/cli\/blob\/trunk\/docs\/install_linux.md\">https:\/\/github.com\/cli\/cli\/blob\/trunk\/docs\/install_linux.md<\/a><\/li>\n\n\n\n<li><strong>GitHub CLI Command Reference:<\/strong> <a href=\"https:\/\/cli.github.com\/manual\/\">https:\/\/cli.github.com\/manual\/<\/a><\/li>\n\n\n\n<li><strong>GitHub CLI Authentication:<\/strong> <a href=\"https:\/\/cli.github.com\/manual\/gh_auth_login\">https:\/\/cli.github.com\/manual\/gh_auth_login<\/a><\/li>\n\n\n\n<li><strong>GitHub CLI Releases:<\/strong> <a href=\"https:\/\/github.com\/cli\/cli\/releases\/latest\">https:\/\/github.com\/cli\/cli\/releases\/latest<\/a><\/li>\n\n\n\n<li><strong>Homebrew Package:<\/strong> <a href=\"https:\/\/formulae.brew.sh\/formula\/gh\">https:\/\/formulae.brew.sh\/formula\/gh<\/a><\/li>\n\n\n\n<li><strong>Git Official Website:<\/strong> <a href=\"https:\/\/git-scm.com\/\">https:\/\/git-scm.com\/<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Last reviewed: October 20, 2026. Installation methods, package metadata, and CLI capabilities may change. Always check the latest official documentation when configuring production or enterprise environments.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>SEO Title: How to Install GitHub CLI (gh) on Mac, Windows &amp; Linux \u2013 2026 Guide Meta Description: Learn how to install GitHub CLI (gh) on macOS,&#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[11138],"tags":[],"class_list":["post-79424","post","type-post","status-publish","format-standard","hentry","category-best-tools"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/79424","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=79424"}],"version-history":[{"count":1,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/79424\/revisions"}],"predecessor-version":[{"id":79425,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/79424\/revisions\/79425"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=79424"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=79424"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=79424"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}