GIT BASICS
GIT INIT
Para empezar a usar git en un proyecto hay que inizializarlo con el comando
git init . Esto genera el repositorio local de git para poder empezar a trabajar con git.
$git initGIT ADD
Antes de hacer una "imagen" (commit) se debe indicar que archivos queremos incluir en esa imagen. Para ello se usa el comando git add y como parámetro se indica el archivo que queremos añadir, por ejemplo
git add file.ts . También se puede indicar que añada todos los archivos de la siguiente forma git add . .
$git add .GIT STATUS
Para comprobar el estado de los archivos (si están incluidos o no para el commit) se usa el comando
git status .
$git statusGIT COMMIT
Cuando ya se tienen preparados todos los archivos (git add) y se quiere hacer la "imagen", se usa el comando
git commit . A este comando se le añade un mensaje descriptivo sobre que cambios guarda añadiendo el parametro git comit -m "message" .
$git commit -m "message commit" GIT CHECKOUT
Dentro de un sistema de git existe el HEAD, que es un puntero que indica en qué commit se van a realizar operaciones. Si por ejemplo se crea una rama, esta se creará en el commit que está apuntando el HEAD.
$git checkout ID_COMMIT/TAG/NOMBRE_RAMAGIT TAG
Todos los commits al generarse tiene un identificador. Pero este identificador es poco representativo. Si se quiere poner un nombre representativo a un commit, se usa el comando
git tag .
$git tag NOMBRE_TAGGIT BRANCH
Cada commit que se realiza pertenece a una rama, por defecto la rama master, y cada commit apunta al commit previo formando un camino. Este camino se puede dividir formando nuevos cominos y que los commits pertenezcan a estos nuevos caminos.
$git branch NOMBRE_RAMAGIT BRANCH -m
Se puede cambiar el nombre de la rama actual usando el comando
git branch -m .
$git branch -m NOMBRE_RAMAGIT BRANCH -D
Si se desea eliminar una rama, generalmente cuando esta ya se ha mergeado a una rama principal se puede hacer con el comando
git branch -d . Esto eliminará la rama pero se mantendrán los commits que pertenecía a ella.
$git branch -d NOMBRE_RAMAGIT RESET
Para descartar los últimos commits y volver a un punto anterior, descartando el trabajo posterior a ese punto, se hace a través del comando
git reset .
$git reset --hard ID_COMMIT/TAGGIT PUSH ORIGIN -D
Cuando se elimina una rama en local, esta no se borra de forma automática. Así que se usa el comando
git push origin -d .
$git push origin -d NOMBRE_RAMAGIT BRANCH --FORCE
Existe una forma de volver a un punto anterior (como git reset) pero sin descartar los commits. Esto es a través del comando
git branch --force .
$git branch --force NOMBRE_RAMA ID_COMMIT/TAGGIT MERGE
Cuando se tienen dos ramas que se quieren unificar en una sola se usa el comando
git merge . Esto traerá la rama indicada a la rama actual, generando un nuevo commit en la rama actual donde se recoge el merge.
$git merge NOMBRE_RAMAGIT SWITCH
El puntero HEAD normalmente se encuentra ubicado en el final de una rama. Para cambiar este puntero al final de otra rama se usa el comando
git switch .
$git switch NOMBRE_RAMAGIT CHERRY-PICK
El comando
git cherry-pick permite traer uno o más commits a la rama actual. Genera una copia de esos commits y los inlcuye en la rama en la que está ubicado el HEAD.
$git cherry-pick ID_COMMIT1/TAG1 ID_COMMIT2/TAG2 ID_COMMIT3/TAG3GIT REMOTE ADD ORIGIN
Para empezar a trabajar con un repositorio remoto se debe indicar la url al repositorio local a través del comando
git remote add origin .
$git remote add origin URL_REPOSITORIOGIT PULL ORIGIN MAIN
Una vez indicado el repositorio remoto, se deben traer los commits que existen en el repositorio online en la rama principal con el comando
git pull origin . Esto solo se hace una vez.
$git pull origin mainGIT BRANCH --SET-UPSTREAM-TO
(?) Esto se hace una vez despues de
git pull origin main . No se por qué. Solo una vez.
$git branch --set-upstream-to=origin/NOMBRE_RAMA NOMBRE_RAMAGIT PULL --ALLOW-UNRELATED-HISTORIES
(?) Esto se hace una vez despues de
git branch --set-upstream-to . No se por qué. Solo una vez.
$git pull --allow-unrelated-historiesGIT PUSH -U ORIGIN
(?) Se hace un primer push con el parámetro -u. No se por qué. Solo una vez.
$git push -u origin NOMBRE_RAMAGIT FETCH
Para actualizar la información que se tiene en el repositorio local sobre el repositorio remoto, se usa
git fetch que trae dicha información, pero no altera nada, es puramente informativo.
$git fetchGIT PULL
Si se quieren descargar los cambios que existen en el repositorio remoto al repositorio local, se usa el comando
git pull .
$git pullGIT PUSH
Cuando se tienen cambios en local y se quieren subir dichos cambios al repositorio remoto, se usa el comando
git push .
$git push