Skip to content

Instantly share code, notes, and snippets.

@marcedroid
Last active March 30, 2023 15:02
Show Gist options
  • Save marcedroid/8c879bd457e5f81e5034b0fed8cde0d1 to your computer and use it in GitHub Desktop.
Save marcedroid/8c879bd457e5f81e5034b0fed8cde0d1 to your computer and use it in GitHub Desktop.
Referencia de algunos comandos de git, resumen de videos de código facilito

Link de la lista con las 10 clases de git
Los corchetes [] son de referencia nunca se colocan
El igual igual mayor que ==> son para saber si realiza algo de manera específica

git help

Cambiar o ver el nombre de usuario

git config --global user.name "Marcelo"
git config --global user.name

Cambiar o ver el email

git config --global user.email "[email protected]"
git config --global user.email

Colores en el terminal

git config --global color.ui true

Listar la configuracion actual

git config --global --list

Iniciar el git en la carpeta del proyecto solo 1 vez

git init

Status del proyecto

git status

Agregar archivos para comit

git add [archivos -A todos o .]

Commit

git commit -m "descripción del commit"

Comit + add en la misma línea

git commit -am "descripción del commit"

Actualizar el último commit

git commit --amend
git commit --amend -m "modifcar rapidamente la descripcion del commit"

Listar los commits hechos

git log

Moverse por el proyecto, branch o tags

git checkout [codigo sha del commit | nombre del branch | tag]

Moverse al ultimo commit realizado

git checkout [nombre del branch]

Crear archivo con el listado de commits (nombre + formato cualquiera)

git log > commits.txt

Reset de commits --soft --mixed --hard
Soft no modifica e códio
Hard regresa el código al commit specifico

git reset --soft [idCommit]
git reset --hard [idCommit]

Ramas del proyecto
Al crear el proyecto la rama se llama master

Listar ramas

git branch
git branch -a ==> muestra incluso ramas ocultas

Clonar Repositorios

git clone https://github.com/socketio/socket.io.git

Clonar varias ramas
Se clona normal y se debe hacer git branch -a para ver las otras ramas ocultas
Luego git checkout -b [rama] origin/[rama]

Crear ramas
al crear una rama esta inicia desde el ultimo commit de master

git branch [nombre de la rama]

Crear y moverse a la rama creada en la misma línea

git checkout -b [nombre de rama]

fusionar ramas
Primero nos cambiarnos a la rama que va a absorber los cambios

git merge [rama que sera absorbida]

Eliminar ramas

git branch -d [nombre de la rama]

Conectar repositorios

git remote add [origin] http://urlrepositorio.git

ver repositorios conectados

git remote -v

Quitar coneccion de repositorios

git remote remove [origin]

Push al server

git push [origin] [master] ==> se puede cambiar master por otra rama
git push [origin] [master] -f ==> fuerza a subir los cambios 

Forzar pull del server

git fetch --all
git reset --hard origin/[rama]

Etiquetas
Usado para asignar versiones NO se suben al hacer push

git tag -a [v1.0] -m "Mensaje del tag" [codigo sha] ==> lo agrega a un commit existente
git tag -a [v1.0] -m "Mensaje del tag" ==> lo agrega al último commit
git tag -a [v1.0] ==> lo agrega al último commit pero sin descripción

Listar etiquetas

git tag

Moverme a un tag especifico

fit checkout [v1.0]

subir tag

git push [origin] [v1.0] ==> sube tag especifica
git push [origin] --tags ==> sube todos los tags

Trabajo en Equipo

Si se trabaja con un equipo antes de hacer un push es necesario baajar los cambios del server por si alguien mas modificó algo y esta en nuestro local desactualizado
Bajar los cambios remotos a una rama oculta

git fetch [origin]

Pasar los cambios de la rama oculta a la rama deseada

git merge [origin/master (rama oculta)]

Si hay un error con el merge porque se modifico el mismo fragmento de código se debe seleccionar cual es el correcto en nuestro IDE hacer commit y subir

Trabajo con terceros

Si se esta utilizadno el git de un tercero se debe hacer fork y abrán nuevas ramas ocultas por lo general el de fork es

git fetch upstream
git fetch origin

Pagina para github
Si se desea tener un sitio "alojado" en github similar a [usuario].github.io/[sitio] se debe crear la rama gh-pages y subirlo a github

Deployment
Las llaves son usadas para no pedir la contraseña y usuario en cada push se debe generar en la pc y colocarla en github o server, en windows se puede usar el git bash para hacerlo

ssh-keygen

Hooks
Son usados para realizar acciones especificas antes o despues de un evento de git por ejemplo de commit o push, se encuentra en .git/hooks se crea el archivo de hok especifico y se agrega

#!/bin/sh
while read oldrev newrev refname
do
    branch=$(git rev-parse --symbolic --abbrev-ref $refname)
    if [ "master" == "$branch" ]; then
        git --work-tree=/home/git/node/algo-io checkout -f
    fi
done

Incluso es posible ejecutar un sh ssh [email protected] 'bash -s' para lo cual primero es necesario agregar la llave publica del servidor en el caso de que sea a otro externo
Se debe dar privilegios al hook chmod +x [nombre del hook]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment