Show Menu
Cheatography

Comandos Esenciales en Git Cheat Sheet by

Comandos basicos en Git

Configurar un Reposi­torio

git init
Crea un nuevo reposi­torio en la ruta donde se ejecuta el comando
git clone [url]
clona un reposi­torio al directorio actual
git clone [url] [nuevo direct­orio]
clona un reposi­torio a un nuevo directorio

Collab­oración y Sincro­niz­ación con GitHub

Estos comandos se utilizan para trabajar colabo­rat­iva­mente con el reposi­torio remoto

Configurar Acceso al Reposi­torio en GitHub

Accede a tu reposi­torio en GitHub y haz clic en la pestaña "­Set­tin­gs" (Confi­gur­ación)
En la página de config­ura­ción, haz clic en la pestaña "­Col­lab­ora­tor­s" (Colab­ora­dores)
En el campo "­Search by userna­me" (Buscar por nombre de usuario), escribe el nombre de usuario de la persona que quieres añadir como colabo­rador
Selecciona el nombre de usuario de la lista de resultados y haz clic en "Add collab­ora­tor­" (Añadir colabo­rador)
La persona que has añadido recibirá una solicitud de colabo­ración en su correo electr­ónico de GitHub. Cuando la acepte, podrá empezar a colaborar en el reposi­torio
Para añadir colabo­radores a un reposi­torio en GitHub, primero debes tener permisos de propie­tario del reposi­torio o ser un usuario con permisos de escritura.

Tipos de permisos de acceso para colabo­radores

Acceso de lectura: Los colabo­radores con este tipo de acceso pueden ver y descargar el código del reposi­torio, pero no pueden realizar cambios ni enviar solici­tudes de pull.
Acceso de escritura: Los colabo­radores con este tipo de acceso pueden realizar cambios y enviar solici­tudes de pull, pero no pueden eliminar el reposi­torio ni cambiar la config­uración del reposi­torio.
Acceso de admini­strador: Los colabo­radores con este tipo de acceso tienen acceso completo al reposi­torio y pueden realizar cambios, enviar solici­tudes de pull, eliminar el reposi­torio y cambiar la config­uración del reposi­torio.
Puedes cambiar el tipo de acceso de un colabo­rador en cualquier momento en la página de config­uración del reposi­torio, en la sección "­Col­lab­ora­tor­s" (Colab­ora­dores).

Git push

git push [remote repo] [branch name]
Pública los commits del reposi­torio local al remoto. Se puede omitir el reposi­torio si se desea seguir usando el mismo reposi­torio Ejemplo: git push origin master
git push [remote repo] --all
Pública los commits de todas las ramas al reposi­torio remoto.
git push [remote repo] --tags
Pública tags locales al reposi­torio remoto
- Las Tags no se sincro­nizan automa­tic­amente con el reposi­torio remoto con otros comandos push.
https:­­//­w­w­w.a­­tl­­as­s­i­an.c­o­­m/g­­it­/­t­ut­­ori­­al­s­/­sy­­nci­­ng­#­g­it­­-push

Git pull

git pull [remote repo]
Trae los cambios desde reposi­torio remoto. Fast forward merge. Se puede omitir el repo si ya se ha config­urado.
git pull [remote repo]/­­[b­ranch name]
Trae los cambios de una rama y los combina al reposi­torio local.
- Git pull command = git fetch + git merge
- Más inform­ación y ejemplos:
https:­­//­w­w­w.a­­tl­­as­s­i­an.c­o­­m/g­­it­/­t­ut­­ori­­al­s­/­sy­­nci­­ng­#­g­it­­-pull

Git fetch

git fetch [remote repo name]
Muestra los cambios de todas las ramas del reposi­torio remoto
git fetch [remote repo name] [branch]
Muestra los commits en una rama del reposi­torio.
git fetch --dry-run
Ver los cambios de un reposi­torio remoto antes de hacer pull
- Se utiliza para ver en que han trabajado los demás colabo­radores
- El contenido fetched se representa como una rama remota y no afecta al reposi­torio local.
https:­­//­w­w­w.a­­tl­­as­s­i­an.c­o­­m/g­­it­/­t­ut­­ori­­al­s­/­sy­­nci­­ng­#­g­it­­-fetch

Git remote

git remote
Verifica si se tiene un reposi­torio remoto. Si se hace en un reposi­torio clonado, retorna el reposi­torio original
git remote -v
Muestra el path completo del reposi­torio remoto
git remote add origin [github url]
Añade un reposi­torio remoto
git remote [url] [branch name]
Apunta rama remota a la url correcta
git remote rm [remote repo name]
Remover conección al reposi­torio especi­ficado

Ramas y Reposi­torios

git switch [remote branch]
Trae los cambios de una rama remota al reposi­torio local y crea la rama localm­ente.
git push --set-­ups­tream [repos­itory] [new branch name]
Este comando debe hacerse desde la rama en cuestión. Git crea en el reposi­torio remoto la nueva rama y la asocia a la rama actual. Ejemplo: git push –set-u­pstream origin new-branch

Viajar en el tiempo con Git

Estos comandos se utilizan para deshacer cambios, revertir estados y recuperar el código a cualquier punto en el historial de Git.

Git restore

git restore [file name]
Recupera el estado del archivo en cuestión segun el HEAD
git restore [commit id] [file name]
Recupera el estado del archivo en cuestión segun un commit concreto
git restore --staged [file name]
Saca un archivo del área de staged a unstaged
Este es un nuevo comando que ayuda a deshacer operac­iones. Ya que es nuevo la mayoría de los tutoriales no lo mencionan, sus funciones pueden ser reempl­azadas con git checkout.

Git checkout

git checkout [commit id]
Devuelve el proyecto a un commit concreto en estado de detached HEAD
git checkout HEAD~[­número]
Devuelve el proyecto moviendose [número] posiciones hacia átras desde HEAD. HEAD~1 se refiere al commit anterior a HEAD. HEAD~2 se refiere a 2 commits antes.
Este comando es como un comodín, o la navaja suiza de git.
Se suele decir que es overloaded lo que llevó a la adición de los comandos git switch y git restore.
Se puede utilizar para crear ramas, cambiar entre ramas, recuperar archivos y viajar en el historial, pero se recomienda utilizarlo solo para este último uso.
 

Comandos Explor­atorios de Git

git status
Lista los archivos que han sido staged, unstaged, commited, y tracked
git show
Muestra los cambios realizados en el último commit
git show [commit id]
Muestra los cambios realizados en un commit concreto
git shortlog
lista alfabetica de los nombres y mensajes de los commits realizados por cada persona del reposi­torio
git shortlog -s -n
Muestra el número de commits hecho por cada persona
git log
Muestra el historial completo de todos los commits realizados
git log -n [numero]
Muestra solo la cantidad especi­ficada de commits del historial
git branch
Lista las ramas en el reposi­torio
git branch -a
Lista las ramas en el reposi­torio, incluyendo ramas remotas
git tag
Muestra las tags existentes en el reposi­torio

Guardar Cambios

Este conjunto de comandos se utilizan para añadir cambios al historial de Git

Git add

git add [file name]
Añadir archivos al área de staging
git add .
Añadir todos los archivos al área de staging. Esto incluye aquellos que se encuentran como untracked
git add '*[file type]'
Añade todos los archivos de un tipo al área de staging. Ejemplo: git add .txt
git add [direc­tory]
Añade todos los cambios de un directorio al área de staging
Más inform­ación de este comando:
https:­­//­w­w­w.a­­tl­­as­s­i­an.c­o­­m/g­­it­/­t­ut­­ori­­al­s­/­sa­­vin­­g-­c­h­an­­ges­­#g­i­t-add

Git commit

git commit
Abré un procesador de texto para añadir un mensaje de commit en la línea superior. Añade los cambios del área de staging a un commit.
git commit -m ["commit messag­­e"]
Crea un commit con los cambios del área de staging y el mensaje especi­ficado.
git commit -a -m ["commit messag­­e"]
Crea un commit con todos los cambios de los archivos en estado tracked. No agrega al commit untracked files.
Guía para escribir mensajes de commit:
http:/­­/u­d­a­ci­­ty.g­­i­t­h­ub.i­o­­/gi­­t-­s­t­yl­­eguide/

Git diff

git diff
Muestra los cambios en el directorio local (not staged)
git diff --staged
Muestra los cambios respecto al área de staging
git diff HEAD
Muestra los cambios entre archivos staged y unstaged

Git stash

git stash
Añade todos los cambios actuales en staging en un área especial denominada stash, donde pueden ser recupe­rados más tarde.
git stash pop
Obtiene los cambios del stash y los lleva a la rama actual
El área de stashing es muy útil para guardar cambios tempor­almente para cambiar de rama o traer cambios remotos sin realizar commits innece­sarios.
Más sobre stash:
https:­//g­it-­scm.co­m/d­ocs­/gi­t-stash

Git Branches

git branch
Lista las ramás de un reposi­torio local
git branch -a
Lista todas las ramás de un reposi­torio, incluyendo las del reposi­torio remoto
git branch -r
Lista solo las ramas remotas de un reposi­torio
git branch [new branch name]
Crea una nueva rama con el nombre indicado
git branch [new branch name] [commit id]
Crea una nueva rama desde el commit especi­ficado
git branch -d [branch name]
Elimina una rama. No se puede eliminar una rama si esta en ella o no se ha hecho merge de los cambios.
git branch -D [branch name]
Elimina una rama por la fuerza (no requiere merge), pero no se puede hacer si se encuentra en la rama.
git switch [branch name]
Sirve para cambiar a la branch en cuestión
git switch -c [branch name]
Crea una nueva rama y cambia a esta el puntero HEAD.
git branch -m [new name]
Renombrar una rama.
git merge [branch name]
Trae el contenido de la rama especi­ficada a la rama actual. No elimina la rama que estamos combin­ando, esta sigue existi­endo. Si ya no se necesita debe ser eliminada manual­mente.

Deshacer Commits

git reset [commit id]
Deshace el commit en cuestión y los cambios se dejan en el directorio de trabajo como unstaged
gir reset --hard [commit id]
Deshace el commit y revierte los archivos al estado anterior. Los cambios contenidos en el commit se pierden para siempre. Usar con precaución
git revert [commit id]
Deshace los cambios del commit en cuestión. A diferencia de reset no elimina el commit, sino que crea un nuevo commit revert­iendo los cambios.
Si desean deshacer cambios que otros colabo­radores ya tienen en sus máquinas, se recomienda usar revert.
Si aún no han hecho push de los cambios, usar reset y nadie nunca lo sabrá.

Opciones en estado de Detached HEAD

Descartar cambios
Para descartar los cambios hacer git switch a una rama existente
Crear una nueva branch con los cambios
Para crear una nueva branch desde el estado actual, solo hacer git switch -c [new branch] esta rama se realizará desde el estado actual e incluira el trabajo realizado en el directorio local.
Hacer commits, cambios, etc...
Usted puede hacer cambios y commit en este estado y revisar los archivos, pero estos cambios no serán persis­tentes a menos que usted cree una nueva branch. Si cambia a una branch existente, se perderan para siempre.
 

Comments

No comments yet. Add yours below!

Add a Comment

Your Comment

Please enter your name.

    Please enter your email address

      Please enter your Comment.