Chuleta sobre GIT
Este apunte contiene mi ficha de ayuda sobre GIT: Es mi hoja recordatorio que utilizo como programador, donde tengo las comando que más utilizo. Viene bien por ejemplo cuando borro accidentalmente un fichero, quiero consultar una versión anterior de código o quiero ignorar una modificación en un archivo concreto.
Importante: Este apunte lo uso como referencia, por lo tanto asume que conoces GIT. Si necesitas saber más te recomiendo este otro apunte sobre GIT en detalle |
Básico
$ git config --global user.name "Don Quijote"
$ git config --global user.email "donquijote@email.com"
$ mkdir -p /home/proyectos/miproyecto
$ cd /home/proyectos/miproyecto
$ git init
$ cd /home/proyectos
$ git clone https://github.com/LuisPalacios/LuisPalacios.github.io
$ cd /home/proyectos/miproyecto
$ git status
Tags
$ git log --pretty=oneline
a7a05..d9114 (HEAD -> master, origin/master, origin/HEAD) Nueva versión
:
3f64b..37101 Versión terminada
ce5d4..1e621 Primer commit
$ git tag 1.0 3f64b <== Aplicada al commit con hash 3f64b
$ git tag -d 1.0 <== La borro para añadirla de nuvo con anotación
$ git tag -a 1.0 -m "Primera versión operativa" 3f64b
$ git tag 2.0 <== Aplica al último commit
$ git push origin 1.0 <== Envío tag o tags al origen.
$ git push origin --tags
Alias
$ git config --global alias.lo '!git --no-pager log --graph --decorate --pretty=oneline --abbrev-commit'
$ git config --global alias.lg '!git lg1'
$ git config --global alias.lg1 '!git lg1-specific --all'
$ git config --global alias.lg1-specific "log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %s - %an %C(blue)%d%C(reset)'"
$ git lo
$ git lg
Deshacer.
Técnicamente consiste en Volver a la versión anterior de un archivo de la working copy. Muy útil cuando hemos borrado o modificado un archivo por error y queremos deshacer por completo y volver a su versión anterior (la del último commit). Ojo que es destructivo, vuelve a dejar el contenido anterior del fichero y lo que hayamos modificado se pierde…
$ git restore Capstone/dataset/0.dataclean/datos.ipynb
Importar un repositorio GIT local a GitHub
Está aquí documentado, hay dos formas de hacerlo y voy a describir la primera, con el GitHub CLI.
- “Adding a local repository to GitHub with GitHub CLI” - Lo puedes hacer todo desde tu ordenador, previa instalación del comando
gh
-
“Adding a local repository to GitHub using Git” - Necesitas trabajar en tu ordenador y en GitHub.
- Instalo GitHub CLI (
gh
)
brew install gh (MacOS)
apt install gh (Ubuntu)
- Creo un repositorio local
mirepo
congit init
mkdir -p /home/luis/prog/github-luispa/mirepo
cd /home/luis/prog/github-luispa/mirepo
git init
e README.md
git add .
git commit -m "primer commit"
- Antes de seguir, es bueno tener un Authentication Token. Puedes crear uno en tu usuario de GitHub -> Token. El token necesita los permisos de ‘repo’, ‘read:org’, ‘admin:public_key’.
$ gh auth login
? What account do you want to log into? GitHub.com
? What is your preferred protocol for Git operations on this host? SSH
? Upload your SSH public key to your GitHub account? /Users/luis/.ssh/id_ed25519.pub
? Title for your SSH key: GitHub CLI
? How would you like to authenticate GitHub CLI? Paste an authentication token
? Paste your authentication token: ****************************************
:
- A continuación uso
gh
para “subir” mi repositorio localmirepo
a GitHub, prefiero hacerlo de golpe en un solo comando:
cd /home/luis/prog/github-luispa/mirepo
gh repo create --description "Composición sobre Herencia en C++" --remote "CompositionOverInheritance" --source=. --public --push
✓ Created repository LuisPalacios/testLuisPa on GitHub
https://github.com/LuisPalacios/testLuisPa
✓ Added remote git@github.com:LuisPalacios/testLuisPa.git
:
rama 'master' configurada para rastrear 'CompositionOverInheritance/master'.
✓ Pushed commits to git@github.com:LuisPalacios/testLuisPa.git
Github y Visual Studio Code basado en Web
Si quieres trabajar con VSCode desde tu navegador, directamente conectado culaquier repositorio alojado en GitHub, solo tienes que reemplazar .com
por .dev
. Si el repositorio es tuyo (has hecho login en GitHub) entonces tendrás derechos de edición y podrás hacer commits directamente. Un par de ejemplos:
- https://github.dev/CiscoDevNet/netprog_basics
- https://github.dev/LuisPalacios/LuisPalacios.github.io/tree/gh-pages