0% encontró este documento útil (0 votos)
70 vistas20 páginas

Comandos Esenciales de Git y GitHub

Este documento proporciona una hoja de comandos de Git y GitHub utilizados en un curso profesional. Explica comandos básicos de la terminal como pwd, cd, ls, mkdir y touch, así como comandos de Git como git init, git add, git commit, git branch y git checkout para gestionar repositorios locales y realizar el seguimiento de cambios.

Cargado por

Daniel Peralta
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
70 vistas20 páginas

Comandos Esenciales de Git y GitHub

Este documento proporciona una hoja de comandos de Git y GitHub utilizados en un curso profesional. Explica comandos básicos de la terminal como pwd, cd, ls, mkdir y touch, así como comandos de Git como git init, git add, git commit, git branch y git checkout para gestionar repositorios locales y realizar el seguimiento de cambios.

Cargado por

Daniel Peralta
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Hoja de Comandos: Curso Profesional

de Git y Github

Esta es una hoja de los comandos utilizados y enseñados en el curso: Curso


Profesional de Git y Github, impartido por el profesor Freddy Vega, @freddier,
en la plataforma de Platzi.

Documento elaborado por: Juan Marcos Caicedo Mejı́a, @juanmarcos935

1
Comandos
Comandos de la Terminal (Linux/Mac) de uso común
pwd

El comando pwd significa ((print working directory)), y nos devuelve la


carpeta actual en la que estamos. Si estamos en home, nos mostrarı́a
algo como:

/home/tunombredeusuario

cd <direccion_de_directorio>

El comando cd significa ((change directory)), y le debemos entregar co-


mo argumento la ruta a la cual nos queremos mover, y al ejecutarlo
nos movemos automáticamente a la dirección que le solicitamos. Esto
se ve reflejado en el shell que utilicemos, ahı́ podemos ver que efectiva-
mente el desplazamiento surgió. Nota: En todas las carpetas hay dos
carpetas especiales que son apuntadores, el apuntador . (punto) y el
apuntador .. (punto punto). El apuntador . siempre apunta a la misma
carpeta actual, y el apuntador .. apunta al directorio padre. Entonces,
si hacemos:

cd .

Nos mantenemos en la carpeta actual. Y si hacemos:

cd ..

Automáticamente nos desplazamos a la carpeta padre de la carpeta en


la que estábamos.

2
ls

El comando ls nos lista (muestra) las carpetas y los archivos conte-


nidos en la carpeta donde estamos actualmente. Por ejemplo, en una
instalación común de Linux podriamos encontrar en el directorio home:

$ ls
Descargas Escritorio Música Público
Documentos Imágenes Plantillas Vı́deos

El comando ls puede ser ejecutado con argumentos como flags, por


ejemplo:

ls -a

Nos muestra todos los archivos y directorios de la carpeta actual, in-


cluyendo los archivos y carpetas ocultas. También:

ls -al

No solo nos muestra los archivos y carpeta que estén ocultos, también
nos da mucha más información, como por ejemplo permisos, tamaño,
dı́a de último acceso, usuario y grupo al que pertenece, etc.

mkdir <nombre_de_carpeta>

El comando mkdir significa ((make directory)) y nos permite crear nue-


vas carpetas. A este comando le debemos de entregar como argumento
el nombre que queremos que tenga dicha carpeta que será creada. Un
ejemplo es:

$ mkdir carpeta1
$ ls
carpeta1/

(Asumiendo que en el directorio no habia ningún archivo ni directorio)

3
touch <nombre_de_archivo>

El comando touch crea archivos automáticamente. Un ejemplo:

$ touch [Link]
$ ls
[Link]

(Asumiendo que en el directorio no habia ningún archivo ni directorio)

cat <nombre_de_archivo>

El comando cat visualiza en la terminal el contenido de un archivo

$ cat [Link]
Hola que tal

(Asumiendo que el contenido de [Link] es ((Hola que tal)))

history

El comando history muestra a manera de lista el historial de los co-


mandos que se han ejecutado anteriormente

$ history
1 mkdir carpeta1
2 ls
3 touch [Link]
4 cat [Link]

(Asumiendo algunos de los comandos anteriores)

rm <nombre_de_archivo>

El comando rm se utiliza para borrar archivos. Ejemplo:

4
$ ls
[Link] [Link]
$ rm [Link]
$ ls
[Link]

(Asumiendo que ambos archivos existen)

rmdir <nombre_de_directorio>

El comando rmdir se utiliza para borrar directorios (carpetas). Ejem-


plo:

$ ls
Descargas Escritorio Música Público
Documentos Imágenes Plantillas Vı́deos
$ mkdir hola
$ ls
Descargas Escritorio Imágenes Plantillas Vı́deos
Documentos hola Música Público
$ rmdir hola
$ ls
Descargas Escritorio Música Público
Documentos Imágenes Plantillas Vı́deos

(Asumiendo que estabamos en home)

rm -rf <nombre_de_directorio>

El comando rm con el flag -rf se utiliza para borrar directorios (carpe-


tas) también. Ejemplo:

$ ls
Descargas Escritorio Música Público
Documentos Imágenes Plantillas Vı́deos
$ mkdir hola
$ ls

5
Descargas Escritorio Imágenes Plantillas Vı́deos
Documentos hola Música Público
$ rm -rf hola
$ ls
Descargas Escritorio Música Público
Documentos Imágenes Plantillas Vı́deos

(Asumiendo que estabamos en home)

6
Comandos de Git (relacionados con el repositorio
local)

git init

El comando git init va a inicializar un repositorio de Git (inicialmente


vacı́o) en la carpeta actual en la que estemos.

$ git init
Inicializado repositorio Git vacı́o en <directorio_actual/.git/>

git status

El comando git status nos muestra el estado actual de nuestro repo-


sitorio, nos avisará si han habido modificaciones y no hemos añadido
esas actualizaciones o a lo mejor aún no hemos puesto a trackear los
archivos que existen en el directorio (esto poniendolo en letra roja), o
puede decirnos que los archivos y modificaciones ya han sido añadidas y
están listas para realizar commit (en letra verde). También nos informa
en que rama estamos actualmente.

git add <nombre_de_archivo>

El comando git add lo que realiza es que el repositorio empieza a trac-


kear (hacer seguimiento) al archivo que le pasamos como argumento.
Si hacemos:

git add .

Lo que sucede es que añadimos todos los archivos del directorio actual
a ser trackeados por el repositorio (recordando que el apuntador . hace
referencia al directorio actual)

git rm --cached <nombre_de_archivo>

El comando git rm con obligatoriamente el flag –cached lo que realiza


es dejar de hacer seguimiento (untrack) un archivo del repositorio.

7
git rm --forced <nombre_de_archivo>

El comando git rm con obligatoriamente el flag –forced lo que realiza


es borrar el archivo seleccionado tanto de Git como del disco duro.

git commit -m "<mensaje>"

El comando git commit con obligatoriamente el flag -m (mensaje),


realiza el Commit (habiendo añadido los cambios anteriormente) al
repositorio. Esto comienza a escribir la historia de nuestro proyecto.

git commit -am "<mensaje>"

El comando git commit con el flag -am permite realizar el commit sin
hacer previamente

git add

A los archivos que hayan sido cambiados. Nota: esto solo funciona
cuando estamos modificando archivos que en un primer momento les
hayamos hecho add, es decir, le hayamos ordenado al repositorio trac-
kearlos. Si en las modificaciones que hemos hecho hemos creado o añadi-
do nuevos archivos, debemos hacerles add antes del commit. Sólo fun-
ciona con archivos que ya estén trackeados y que sólo hayan sufrido
modificaciones.

git config --list

El comando git config con el flag –list permite visualizar el archuvo


de configuración de Git.

git config --global [Link] "<nombre>"

El comando git config con el flag –global y el argumento [Link]


modifica el nombre de usuario global que trabaja en la máquina que
tiene instalado Git.

8
git config --global [Link] "<correo>"

El comando git config con el flag –global y el argumento [Link]


modifica el correo electrónico de usuario global que trabaja en la máqui-
na que tiene instalado Git.

git log

El comando git log muestra toda la historia guardada en el repositorio,


los commits hechos, quien los hizo, fechas y el numero de identificador
SHA256. Si hacemos:

git log <nombre_de_archivo>

Nos mostrará la historia en particular de los commits en los que ha


participado dicho archivo que le pasamos como argumento.

git log --all

El comando git log junto con el flag –all nos muestra sin excepción toda
la historia de nuestro proyecto, pues en ocasiones cuando el proyecto
es grande sin este flag podrı́a mostrarnos sólo una parte del proyecto.

git log --graph

El comando git log junto con el flag –graph, nos mostrará la historia
de nuestro proyecto con una pequeña ayuda visual sobre cómo han
sucedido los desarrollos entre ramas, en qué momentos se han fusionado
unas con otras, etc. Se pueden utilizar varios flags al mismo tiempo (–all
y –graph en una sola linea es posible).

git log --decorate

El comando git log junto con el flag –decorate, nos muestra la historia
del proyecto de una manera un poco más decorada, añadiendo colores
en el texto.

9
git log --oneline

El comando git log junto con el flag –oneline, nos muestra la historia
de nuestro proyecto un poco más comprimido y tratando de que sea
en una sola lı́nea directa. Recordar que se pueden usar varios flags al
mismo tiempo, la combinación usada en el curso es:

git log --all --graph --decorate --oneline

git show <nombre_de_archivo>

El comando git show muestra los cambios recientes que han sucedido
en el archivo que entregamos como argumento.

git diff <id_de_commit1> <id_de_commit2>

El comando git diff generalmente recibe dos argumentos, y estos argu-


mentos son los identificadores (Numeros SHA256) de los commits que
queremos comparar, generalmente en el primer SHA (el del commit 1)
se coloca el commit más antiguo, y en el commit 2, el que le sigue a
la derecha, un commit más nuevo, y ası́ se puede ver una comparativa
de cómo cambia el archivo a lo largo del tiempo, aunque también se
puede comparar al revés, para ver qué cambios se han efectuado en el
archivo.

git branch <nombre_de_la_rama>

El comando git branch crea en nuestro repositorio local una rama en


la cual podemos trabajar de manera independiente a master. Recordar
que la rama se crea y la rama toma la ((forma)) de la rama sobre la cual
estabamos parados, es decir, toma como punto de partida los avances
de la rama en la que estabamos parados, que generalmente es master.

git checkout -b <nombre_de_la_rama>

El comando git checkout -b crea una rama en nuestro repositorio


local e inmediatamente nos vemos hacia ella.

10
git show-branch

El comando git show-branch muestra todas las ramas que existen en


ese momento en nuestro repositorio local y su historia. Con el flag –all
se muestran mas detalles de las ramas.

git branch -d <nombre_de_la_rama>

El comando git branch -d borramos una rama de nuestro repositorio


local.

git checkout

El comando git checkout nos sirve para movernos entre commits (his-
torias versionadas del progreso de nuestro proyecto) o ramas (branches)
de nuestro proyecto. Sirve para movernos entre estos dos conceptos si
necesitamos revisar distintas versiones anteriores o posteriores de nues-
tro proyecto, o para movernos entre las diferentes ramas de desarrollo
del mismo. Tiene dos usos posibles:

git checkout <id_de_commit>

Con el cual, dentro de una misma rama, nos vemos entre distintas
instancias de tiempo (particularizadas por los commits que realizamos)
en una misma rama. O:

git checkout <nombre_de_rama>

Que se usa para movernos de una rama de nuestro proyecto a otra.

git reset <id_de_commit> --soft

El comando git reset con el flag –soft, lo que realizará es borrar el


historial hasta el commit que se le pasa como argumento, pero los
cambios que vivan en Staging se conservan, ası́, se puede realizar un
commit nuevo y aplicar dichos cambios.

11
git reset <id_de_commit> --hard

El comando git reset con el flag –hard, lo que realizará es borrar el


historial hasta el commit que se le pasa como argumento, y también
borra los cambios que hayan estado en staging. Es el reset duro por
excelencia.

git reset HEAD

El comando git reset junto con la palabra reservada HEAD, su tarea


es, todo lo que está en Staging, sacarlo de allı́ y que vuelva al Working
Station, pero no deja de trackear los archivos en el repositorio. Para
volver agregar los archivos a Staging se hace git add.

git merge <nombre_de_la_rama>

El comando git merge lo que hace es traer los cambios de una ra-
ma y fusionarlos con lo que tenemos en la rama actual donde estamos
parados, donde ejecutamos el comando de git merge. Por ejemplo, si
tenemos una rama master y hemos trabajado en paralelo con una rama
de implementación de un login llamada login-rama, para poder fusionar
lo que hemos trabajado en dicha rama, debemos trasladarnos a master
y desde allı́ ejecutar git merge login-rama para realizar el merge y te-
ner todo junto en master. En ocasiones pueden existir conflictos: esto
ocurre cuando tenemos que se modifican al mismo tiempo exactamente
dos mismas lı́neas de código, en la rama en la que estamos ubicados
y en la rama que estamos trayendo a fusionar. Para solucionar dichos
conflictos debemos elegir una de las dos modificaciones de lı́nea y que-
darnos con ella, y luego si poder hacer el merge (Git no deja hacer
merge cuando existen conflictos).

12
Configurar llaves SSH

ssh-keygen -t rsa -b 4096 -C "<correo>"

Este comando generará automáticamente las llaves SSH privada y públi-


ca, asociadas a nuestro correo que está en el repositorio de GitHub, y
normalmente guardará dichas llaves en nuestro directorio home, dentro
de una carpeta oculta de nombre .ssh. Cabe resaltar que la llave pública
tiene una extensión .pub y la llave privada no posee extensión (ambos
son archivos de texto plano).

eval $(ssh-agent -s)

Con este comando encendemos la funcionalidad de llaves SSH en nues-


tro computador local.

ssh-add <ruta_de_llave_privada>

Gracias a este comando añadimos a ese ((servidor)) de llaves SSH local


en nuestro computadora, la llave privada Nota: A GitHub le entrega-
mos la llave pública; y con esto podremos conectarnos desde nuestra
máquina a GitHub, y luego recibiremos la llave pública de GitHub y
luego con esto tendremos una conexión de doble camino con GitHub.

13
Comandos de Git (relacionados con el repositorio
remoto)

git clone <url_del_repositorio_remoto>

Con el comando git clone lo que hacemos es traernos una copia (clo-
nar) del repositorio remoto del cual tenemos la URL (debe ser público),
y podemos empezar a trabajar en él.

git push origin <rama_a_enviar>

Con el comando git push, lo que haremos es enviar una rama a origin
(el origen, es decir, el repositorio remoto). Esto sólo es posible si somos
los dueños o colaboradores de dicho repositorio. Puede pedirnos nombre
de usuario y contraseña para verificar esto, o si ya hemos configurado
llaves SSH no sucederá esto y lo hará de forma automática.

git pull origin <rama_a_actualizar>

Con el comando git pull traemos los nuevos cambios que viven en el
repositorio remoto y probablemente aún no se encuentran en nuestro
repositorio local. Es la manera de ((actualizar)) el repositorio local y
siempre es buena práctica estar a la par con el repositorio remoto.
También es buena práctica, antes de hacer un git push, realizar un
git pull.

git tag -a <nombre_del_tag> -m <mensaje_de_tag> <id_de_commit>

Con el comando git tag -a podemos crear un tag asociado a un commit


en particular de nuestra historia del proyecto, esto ayuda a versionar
las fases del proyecto, por ejemplo, si le asignamos un tag de versión
1.0 a un commit particular, hasta ese commit se tendrá en cuenta que
allı́ sucedió el release de la versión 1.0 de nuestro proyecto. El flag -m
y el mensaje es opcional.

git tag -d <nombre_del_tag>

14
El comando git tag -d nos sirve para borrar un tag de nuestro repo-
sitorio local.

git tag

git show-refs --tags

Ambos comandos sirven para listar (mostrar) los tags de nuestro repo-
sitorio remoto.

git push origin --tags

El comando git push origin –tags nos sirve enviar nuestros tags del
repositorio local al repositorio remoto.

git push origin :refs/tags/<nombre_de_tag_a_borrar>

Este comando nos ayuda a borrar un tag de nuestro repositorio remoto,


previamente haber borrado el tag en el repositorio local.

15
Comandos de Git (relacionados con múltiples
entornos de trabajo)

git checkout <rama_de_la_que_quiero_traer_los_cambios>

luego

git rebase master

El comando git rebase, según el curso, es una mala práctica y nunca


se debe usar, o muy poco, en casos demasiado especı́ficos y en entornos
sólo locales, pues rebase lo que hace es sobreescribir la historia de un
proyecto: es cuando tienes, digamos, una rama master y una rama
hotfix donde solucionaste un bug, pero no quieres hacer merge entre
las ramas para solucionar el error, sino que lo que quieres es ((pegar))
ambas ramas y que solo sea como si haya existido una sola y sobre ella
se haya arreglado el error, como poner un parche.

git stash

El comando git stash sirve para guardar cambios que hayamos rea-
lizado y que, por lo pronto, aún no deseamos hacer un commit, pero
deseamos movernos a otra rama sin perder dichos cambios. Sirve para
guardarlos y poder recuperarlos en un futuro.

git stash save "<mensaje_que_diferencie_el_stash>"

El comando git stash save junto con un mensaje, podrá ayudarnos a


diferenciar el stash especı́fico de otros que tengamos guardados.

git stash pop

El comando git stash pop recupera los cambios que tenemos en stash
a staging.

git stash pop stash@{<numero_stash>}

16
De esta manera se aplican los cambios de un stash especı́fico.

git stash apply stash@{<numero_stash>}

De esta manera se retoman los cambios de un stash especı́fico (para


seguir realizando modificaciones).

git stash list

Para poder visualizar la lista de los stash que tenemos.

git stash branch <nombre_de_la_rama>

Esto lo que hace es que creará una rama con el nombre que le pasemos,
y autómaticamente ejecutará el git stash pop (hace que recuperemos
los cambios del stash) en la rama misma.

git stash branch <nombre_de_la_rama> stash@{<numero_de_stash>}

Funciona igual que el anterior, para un stash en especı́fico.

git stash drop

Borra el stash más reciente (el stash 0).

git stash drop stash@{<numero_de_stash>}

Borra un stash especı́fico.

git stash clear

Borra todos los cambios que están en Stash.

git clean --dry-run

17
Este comando lo que hará es listarnos los archivos potenciales que serı́an
borrados porque son archivos innecesaros, copias erróneas, o archivos
que simplemente no estamos trackeando.

git clean -f

Borra los archivos que fueron mostrados por el comando anterior.

git cherry-pick <id_de_commit_a_traer>

El comando git cherry-pick nos permite traer al HEAD de una rama,


un commit de otra rama. Es decir, aquı́ no se hace merge ni nada por
el estilo, funciona en el caso de que, por ejemplo, estamos en master y
tenemos una rama llamada readme-mejorado, y hay una modificación
de esa rama que queremos que ya sea traı́da a master, sin embargo, el
development de la rama readme-mejorado aún no termina y no están
listos para hacer merge, sin embargo, si deseamos ese cambio inmediato
en master. Con este comando logramos hacer esto.

18
Comandos de Git adicionales

git commit --amend

El comando git commit –amend nos es útil cuando, suponiendo que


habiamos hecho un commit y nos faltó realizar una modificación, nos
equivocamos en una lı́nea, o faltaba un archivo para trackear, podemos
realizar estas modificaciones, realizar git add y hacer este commando
para arreglar estos hechos y modificar el commit, enviar estas modifi-
caciones sin hacer un nuevo commit.

git reflog

El comando git reflog muestra un historial de los distintos movimien-


tos y dónde ha estado el HEAD de nuestro proyecto, en qué ramas, y
muestra más o menos los movimientos, checkouts, commits que hemos
hecho y que involucran el HEAD.

git grep <palabra_a_buscar>

El comando git grep, Git nos mostrará en qué archivos y en dónde


se encuentra el uso de la palabra que le entreguemos como argumento.
Con el flag -n antes de la palabra, nos dirá en que archivo y qué lineas
involucran la palabra, de manera más breve. Con el flag -c nos dice
la cantidad de usos de la palabra por archivo. Cuando hay caracteres
especiales como los signos <, > se usan entre comillas en la palabra.

git log -S "<palabra_a_buscar_en_el_log>"

Este comando actúa similar a grep, y busca palabras en el log. Nos


muestra como output todos los commits donde hace aparición la pala-
bra que le entregamos.

git shortlog -sn

Muestra cuántos commits han hecho cada uno de los miembros del
equipo.

19
git shortlog -sn --all

Muestra cuántos commits han hecho cada uno de los miembros del
equipo, incluyendo los miembros que hayan sido eliminados de colabo-
ración.

git shortlog -sn --all --no-merge

Muestra cuántos commits han hecho cada uno de los miembros del
equipo, incluyendo los miembros que hayan sido eliminados de colabo-
ración, y junto con ello, excluye los commits que cuenten como simples
merge.

git blame <nombre_de_archivo>

Muestra qué responsables del proyecto han hecho modificaciones en el


archivo, lı́nea por lı́nea.

git blame <nombre_de_archivo> -L<linea_inicial>,<linea_final>

Muestra qué responsables del proyecto han hecho modificaciones en el


archivo, especı́ficamente desde la lı́nea inicial hasta la lı́nea final.

git <nombre_de_comando> --help

Muestra documentación del comando que le hemos pasado como argu-


mento, cómo funciona, los flags, etc.

git branch -r

Muestra las ramas remotas.

git branch -a

Muestra todas las ramas, tanto las remotas como las locales.

20

También podría gustarte