GitHub CLI es una interfaz de línea de comandos que proporciona una forma eficiente de interactuar con GitHub directamente desde la terminal. Con GitHub CLI, los usuarios pueden realizar diversas operaciones, como la creación de repositorios, la gestión de problemas y la revisión de solicitudes de extracción, todo ello sin salir del entorno de la línea de comandos. Esta herramienta potente y versátil simplifica las tareas comunes de GitHub, ofreciendo una experiencia fluida para los desarrolladores que prefieren trabajar desde la terminal.
¿Qué es Github CLI?
Github CLI o gh
es un programa de linea de comandos (CLI), el cual nos permite hacer pull requests, issues y ejecutar otras funcionalidades de Github desde la terminal.
En la practica este es otro comando que podemos utilizar despues de ejecutar los comandos tipicos de git.
- Manual de Github CLI, https://cli.github.com/manual/
- Repositorio de Github CLI, https://github.com/cli/cli#installation
Instalación de Github CLI
Este CLI esta disponible para Windows, Linux y Mac.
- Instalacion para Windows: https://github.com/cli/cli#windows
- Instalación para Linux, https://github.com/cli/cli/blob/trunk/docs/install_linux.md
Una vez instalado, si estas en Windows, recuerda cerrar la terminal y volver a abrirla, para que reconozca el nuevo comando
Comprovar la version
gh --version
Ver la ayuda
gh --help
Autenticarse con Github CLI
Puedes ver la lista de los comandos relacionados a la autenticación con:
gh auth
Login
para logearse ejecuta:
gh auth login
- Puedes logearte con:
- Cuenta personal de Github
- https
- SSH
- Authenticate with Credentials? true
- Open in Browser
En ambos casos te pedira un codigo que te mostrara la consola. Una vez lo coloques, ya estaras logeado desde consola.
Para comprobar el Estado del login
gh auth status
Cerrar sesion de Github CLI
gh auth logout
Config
gh config --help
Obtener la configuracion
gh config get git_protocol
Listars todas las configuraciones
gh config list
Cambiar configuraciones
gh config set editor vim
gh config set editor "code --wait"
gh config set git_protocol ssh
gh config set prompt disabled
Gist
gh gist
gh gist --help
Listar todos tus Gist
gh gist list
gh gist list --help
gh gist list --limit 2
gh gist list --public
gh gist list --secret
gh gist list --public --limit 2
Crea un Gist
por defecto al crear un Gist, este es privado:
Para crear tu primer gist necesitas primero un archivo. Asi que crea un archivo con el nombre por ejemplo example.js coloca algo de codigo y ejecuta lo siguiente para poder crear un gist con esta porcion de código:
gh gist create example.js
Si listas ahora tus Gists, veras que tienes un nuevo gist privado.
Crear Gist Publico
gh gist create --public example.js
Crear gist y abrir en el navegador
gh gist create index.html --web
gh gist create index.html -w
Gist con descripcion
tambien podemos añadir una descripción a un gist. este vendria a ser el nombre que veriamos en lugar del nombre del archivo.
gh gist create hello.py -d "my first hello world with python"
Crea un Gist con multiples archivos
gh gist create program1.py program2.py
gh gist create program1.py program2.py -d "my awesome program"
al momento de listar con gh gist list, veras que ahora dice que tiene 3 archivos.
Tambien si usas el comando gh gist view
Tambien puedes crear un git con una entrada estandar
gh gist create -
empieza a escribir, luego escribe Ctrl+D para finalizar tu entrada estandar.
Crea un Gist desde la salida de otro comando
cat hello.txt | gh gist create
Ver un solo Gist
Puedes verlo con el comando view:
gh gist view <ID o URL>
gh gist view https://gist.github.com/a378da9a9206073c2a251d7f04f37fab
gh gist view a378da9a9206073c2a251d7f04f37fab
Eliminar Gist
para eliminar un gist
gh gist delete <ID o URL>
Repositorios
Para ver la lista completa de comandos que podemos hacer con los repositorios:
gh repo --help
Listar Repositorio
gh repo list
Crear Repositorio
Por ejemplo para crear un repositorio privado:
gh repo create myproject --private --source=.
gh repo create myproject --public --source=.
# gh repo create myproject --private --source=. --remote=upstream
Luego de esto solo tendrias que ejecutar un push:
git push origin master
Ver repositorio
gh repo view --help
gh repo view youruser/yourepo
para abrir tu repositorio en la web:
gh repo view youruser/yourepo --web
clonar
Desde la web, en code, tienes la opcion con github cli
gh repo clone FaztTech/nodejs-imgshare
gh repo view
Issues
gh issue --help
gh issue list
listar solo con etiquetas:
gh issue list --label "bug"
gh issue list --label "enhacement"
para ver a quien que usuarios tienen asignados algunos issues: gh issue list --assignee "fazttech"
para abrir un issue, ej: numero 11
gh issue view "11"
para crear un issue:
gh issue create
gh issue status
Pull Requests
gh pr --help
gh pr list
gh pr status
gh pr checkout
gh pr checkout "9"
abre en el navegador
gh pr view "9"
crea un commit en tu codigo, luego para enviar un pull request:
gh pr create
gh pr list --state "merge"
Desinstalar Github CLI
winget uninstall Github.cli