miércoles, 7 de junio de 2023

Manual Git #2 [ Primer commit]

 

3.1   Estado Staging à HEAD / Local [ git commit ]

En el apartado anterior mediante el ocmando git add iniciamos el trackeo (zona staging) de nuestros archivos de proyecto en git, en esta zona de staging es donde vamos a estar trabajando y aquí podríamos incluso rechazar cambios. Ahora imaginemos que estamos desarrollando una App y que estamos trabajando en un módulo o una función específica, que forma parte de la app y ya la hemos terminado y queremos pasar a otra funcionalidad de nuestra app, en este caso, podemos registrar este punto del desarrollo con el comando git commit.

ESTE ES EL COMANDO QUE VA “DEJANDO RASTRO” DE LOS PUNTOS CLAVE DEL DESARROLLO.  Por tanto, usando git commit pasaremos del área de Staging a un punto clave concreto en nuestro desarrollo y quedará registrado, con nuestro nombre, hora etc en el histórico del REPOSITORIO LOCAL DE NUESTRA COMPUTADORA, a este estado lo llamamos commited.

Más adelante aprendermos como movernos entre estos puntos commit para poder trabajar en cualquier punto temporal del desarrollo que queramos.

LOS TRES ESTADOS ANTERIORES modified, staged y commited, están ocurriendo en nuestra computadora, el u´timo de los comandos y estados que vamos a ver ya va a ocurrir enun repositorio online como GitHub.

3.3 Estado commited à Remote [ git push ]

Una vez que hemos guardado algo en la cabeza del repositorio local de Git mediante el comando git commit, el siguiente paso es conectarse a la plataforma GitHub, que nos va a permitir integrar nuestro trabajo y tener el código guardado es ejecutar el comando git push. Aquí tendremos que agregar la url del repositorio, nuestras credenciales etc, una vez ejecutemos este comando se subirán los cambios de nuestro repositorio local  al repositorio remoto. A este estado lo llamamos remote.

3.4 COMPAÑEROS DE TRABAJO Y CAMBIOS [ descargando pushes git pull ]

Imaginemos que un compañero de trabajo ya hizo un cambio y que nosotros debemos continuar haciendo nuestra parte donde él lo dejo. Para ello primero deberemos descargar la versión que el compañero a “pusheado”.

Cuando queramos descargar algún push o versión del directorio remoto a nuestro directorio local usaremos el comando git pull.

 

Comenzando

Lista de comandos que vamos a ejecutar en esta sección



git add

Recordemos que en nuestra carpeta de proyecto Git ya ha detectado dos cambios ya que creamos los archivos gitignore y README.


Vamos a agregar estos cambios del archivo al satged con el comando git add. Tenemos dos opciones:

·        Agregar los cambios de un solo archivo al staged

git add archivo/directorio

·        Agregar todos los cambios de todos los archivos al staged

git add .

en este caso optaremos opr la segunda opción de forma que pasaremos todos los archivos al estado Staged, abrimos nuestra consola y nos situamos en la carpeta del proyecto

Juan@DESKTOP-TJ9KCN3 MINGW64 ~

$ cd desktop

Juan@DESKTOP-TJ9KCN3 MINGW64 ~/desktop

$ cd youtube-git

Juan@DESKTOP-TJ9KCN3 MINGW64 ~/desktop/youtube-git (master)

Ejecutamos el commando git add

Juan@DESKTOP-TJ9KCN3 MINGW64 ~/desktop/youtube-git (master)

$ git add .

Al ejecutarlo podremos ver que en VS code, si hacemos clic en el icono de git veremos que nos ha cambiado esos dos archivos al estado Staged (Staged Changes) y nos indica que no hay más cambios a trackear (changes 0): 



PRIMER COMMIT

Si yo ahora decidiera hacer mi primer registro oficial en este punto, o lo que llamamos primer commit ejecutaría el comando:

git commit

Al hacer un commit debemos escribir un mensaje descriptivo del cambio en el archivo de configuración, si hacemos este comando se me abrirá VSCode (ya que lo tengo configurado como editor principal) y cuando salve y cierre VSCode se creará ese primer commit ya en el estado commited.

Si no queremos que se abra el archivo de configuración podemos ejecutar el siguiente atajo del comando anterior:

git commit -m “mensaje descriptivo del cambio”

Vamos a verlo de las dos formas:

1 git commit

Juan@DESKTOP-TJ9KCN3 MINGW64 ~/desktop/youtube-git (master)

$ git commit

 

Al ejecutarlo la consola se pone en modo espera hasta que el archivo de configuración se abra:



Una vez que se abre VSCODE podemos ver el archivo donde se nos pide el mensaje del commit:

Si te fijas el cursor aparecerá en la primera línea, es en esa primera línea donde yo tengo que escribir mi mensaje descriptivo de mi commit.

Mi primer commit
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   new file:   .gitignore
#   new file:   README.md
#
 

 

Si yo ahora salvo y cierro el archivo ocurren varias cosas.

1 La consola ya me ha detectado el commit y me da si Id y el mensaje que yo le he puesto, también me indica que se agregaron dos archivos y que hubieron 0 inserciones y 0 eliminaciones (en amarillo).

Tabién se creó la modificación del tracking para el archivo gitignore y el README (en violeta)

 

Juan@DESKTOP-TJ9KCN3 MINGW64 ~/desktop/youtube-git (master)

$ git commit

[master (root-commit) b18e9a3] Mi primer commit

 2 files changed, 0 insertions(+), 0 deletions(-)

 create mode 100644 .gitignore

 create mode 100644 README.md

 

Juan@DESKTOP-TJ9KCN3 MINGW64 ~/desktop/youtube-git (master)

$

 

2 Si nos fijamos en nuestro VSCODE ha desaparecido el indicador con el numero 2 que teíamos en el icono de git y además nos da la opción de publicar esta rama (pasar ya al estado remoto) de nuestro repositorio:


En este punto ya hemos realizado los tres primeros cambios de estado que son exclusivamente locales

-        Working directory à git add

-        Index /Staging à git commit

-        Head / Local à Ya están listos para pasar al remoto con git push estado remote

 

2 git commit atajo de mensaje

Ya hemos visto como hacer el commit, como hemos dicho vamos a ver la segunda forma de hacer un commit a travs del shortcut

git commit -m “mensaje descriptivo del cambio”

Para poder ejemplificarlo necesito hacer que git detecte algún cambio en mis archivos para poder volver a hacer commit y darle un nuevo nombre esta vez con el shortcut, así que por ejemplo vamos al archivo README.md y vamos a añadir algún comentario y algún markdown:


Si yo salvo ya he generado un cambio que git va a reconocer de inmediato, nada más salvar me aparece en el icono de git un número 1 (un cambio), además el archivo README.md cambia de color a un color anaranjado:


En este momento si hago un git add .  en mi consola lo guardo todo al Stage

 

Juan@DESKTOP-TJ9KCN3 MINGW64 ~/desktop/youtube-git (master)

$ git add .

Ahora vamos a crear otra vez un commit, pero esta vez usando el shortcut del comando commit, es decir con el flag -m y el mensaje:

Juan@DESKTOP-TJ9KCN3 MINGW64 ~/desktop/youtube-git (master)

$ git add .

Juan@DESKTOP-TJ9KCN3 MINGW64 ~/desktop/youtube-git (master)

$ git commit -m "Segundo commit, agergando contenido al README"

doy enter:

Juan@DESKTOP-TJ9KCN3 MINGW64 ~/desktop/youtube-git (master)

$ git commit -m "Segundo commit, agergando contenido al README"

[master f2c921e] Segundo commit, agergando contenido al README

 1 file changed, 3 insertions(+)

 

Juan@DESKTOP-TJ9KCN3 MINGW64 ~/desktop/youtube-git (master)

Podemos ver que ya no se nos ha abierto el archivo de configuración de VSCODE y me ha creado otro commit registrado en el HEAD de mi repositorio local y  listo también para publicar en el repositorio remoto.



martes, 6 de junio de 2023

Manual Git #1 [ configuración inicial, estandarizado saltos de línea, visionado de opciones, flujo de trabajo, comando git add]

 


MANUAL COMPLETO DE GIT Y GITHUB

 

Código de colores del manual

Comandos ordinarios

Recomendaciones

Puntos clave

Comentarios

SECCIÓN 1

Instalamos Git en mi caso para Windows, abriremos la consola gitbash y para saber qué versión hemos instalado podemos saberlo conel comando git  - - versión



1.1 CONFIGURACIÓN INICIAL

Configurar el nombre de usuario de forma global en todo el sistema

Juan@DESKTOP-TJ9KCN3 MINGW64 ~

$ git config --global user.name "Juan José"

 

Configurar el mail

 

Juan@DESKTOP-TJ9KCN3 MINGW64 ~

$ git config --global user.email jujomilo@gmail.com

 

Activar los colores en la terminal

Juan@DESKTOP-TJ9KCN3 MINGW64 ~

$ git config --global user.ui true

 

Ver nuestra configuración actual

Juan@DESKTOP-TJ9KCN3 MINGW64 ~

$ git config –list

 

diff.astextplain.textconv=astextplain

filter.lfs.clean=git-lfs clean -- %f

filter.lfs.smudge=git-lfs smudge -- %f

filter.lfs.process=git-lfs filter-process

filter.lfs.required=true

http.sslbackend=openssl

http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt

core.autocrlf=true

core.fscache=true

core.symlinks=false

pull.rebase=false

credential.helper=manager-core

credential.https://dev.azure.com.usehttppath=true

init.defaultbranch=master

user.name=Juan José

user.email=jujomilo@gmail.com

user.ui=true

 

1.1   Asignando visual studio como editor de configuración de git

Cuando queremos trabajar en la configuración de git ya sea global o local de algún repositorio, Gitbash trae instalado por defecto un editor de texto para consola llamado VIM, este editor es poco intuitivo y lo que podemos hacer configurar visual studio como nuestro editor de git por defecto. Para hacer esto seguiremos los siguientes pasoso:

Con el siguiente comando hacemos que VS code sea el editor por defecto:

Juan@DESKTOP-TJ9KCN3 MINGW64 ~

$ git config --global core.editor "code --wait"

La propiedad  “code --wait” es la que va a hacer que se abra en  VScode el archivo sobre el que queremos trabajar de forma que no se nos permitirá seguir avanzando en la ejecución de comandos en la consola hasta que cerremos vs code después de haber realizado alguna modificación en ese archivo de configuración.

Si ejecutamos el comando:

Juan@DESKTOP-TJ9KCN3 MINGW64 ~

$ git config --global core.editor "code --wait"

Juan@DESKTOP-TJ9KCN3 MINGW64 ~

$

 

Una vez ejecutado este comando, para poder editar el archivo ejecutaremos el comando

Juan@DESKTOP-TJ9KCN3 MINGW64 ~

$ git config --global -e

Al ejecutarlo se nos abre el archivo de configuración pero ya en vscode y la consola nos indica que está esperando que cerremos vscode después de hacer los cambios, para poder continuar trabajando en ella, es decir no nos va a dejar introducir más comandos hasta que cerremos vds code




Una vez cerrado VSCODE recuperamos el control de la consola

 

1.1   ESTANDARIZANDO LOS SALTOS DE LÍNEA EN WINDOWS

Los sitemas operativos basados en unix, Linux macOS, poseen una estructura de directorio bastante similar, sin embargo los sistemas operativos Windows, debido a esto si en un equipo de trabajo de varias personas, cada uno de ellos trabajan con sistemas operativos distintos de Windows (Linux, MacOS) cuando ellos suban su trabajo al repositorio se crearán archivos de ese repositorio con una configuración propia de esos sistemas oparativos y si estás en Windows puede afectar a la legibilidad y a otros aspectos, por ello tenemos los siguientes dos comandos sirven para estandarizar los saltos de línea y otros aspectos que se crean en esos archivos:

Estandarizar saltos de línea en Windows:

Juan@DESKTOP-TJ9KCN3 MINGW64 ~

$ git config --global core.autocrlf true

 

Estandarizar saltos de línea en Linux / Mac:

Juan@DESKTOP-TJ9KCN3 MINGW64 ~

$ git config --global core.autocrlf input

 

 

1.2   VER TODAS LAS OPCIONES DE LA CONFIGURACIÓN EN LA TERMINAL

 

Juan@DESKTOP-TJ9KCN3 MINGW64 ~

$ git config -h




1.1   VER TODAS LAS OPCIONES DE LA CONFIGURACIÓN EN EL NAVEGADOR

 

Juan@DESKTOP-TJ9KCN3 MINGW64 ~

$ git help config





2 INICIAR GIT EN UN DIRECTORIO LOCAL

En este apartado vamos ya a inicializar un directorio local, es decir una carpeta que ya Git vaya trakeando los cambios.

vamos a empezar creando una carpeta en el escritorio e inicializando git en ella y lo vamos a hacer mediante comandos de consola. Los commandos que analizaremos en esta sección son los siguientes:

mkdir

cd carpeta

touch README.md

touch .gitignore

git init

code .

 

nos posicionamos donde queramos para crear la carpeta en este caso me voy a ir al escritorio

Juan@DESKTOP-TJ9KCN3 MINGW64 ~

$ cd Desktop

 

Juan@DESKTOP-TJ9KCN3 MINGW64 ~/Desktop

$

 

Una vez situados en el escritorio vamos a crear una carpeta con el comando mkdir y la podemos llamar por ejemplo youtube-git

Juan@DESKTOP-TJ9KCN3 MINGW64 ~/Desktop

$ mkdir youtube-git

 

Juan@DESKTOP-TJ9KCN3 MINGW64 ~/Desktop

$ 

En este momento la carpeta se ha creado, ahora nos vamos a situar dentro de ella con el ocmando cd y el nombre de la carpeta

Juan@DESKTOP-TJ9KCN3 MINGW64 ~/Desktop

$ cd youtube-git

 

Juan@DESKTOP-TJ9KCN3 MINGW64 ~/Desktop/youtube-git

$

 

Una vez dentro de ella vamos a crear el archivo README.md (mark down). Un archivo Markdown  es un archivo principal que contendrá la explicación y la documentación de cada proyecto, librerías usadas, frameworks, etc que esté alojado en alguna plataforma como github, la forma de crear el archivo es:

Juan@DESKTOP-TJ9KCN3 MINGW64 ~/Desktop/youtube-git

$ touch README.md

 

Si vamos a la carpeta veremos que ya se ha creado este archivo. Vamos a crear también un archivo con la extensión gitignore, todas la rutas que dejemos definidas en este archivo van a ser ignoradas por Git, es decir nose va a realizar un seguimiento de esas carpetas o archivos.

Esto se utiliza por ejemplo en las carpetas modules de node.js donde no es necesario realizar el seguimiento.

Creemos el archivo

Juan@DESKTOP-TJ9KCN3 MINGW64 ~/Desktop/youtube-git

$ touch .gitignore

 

 Este es un archivo oculto, si hago un ls en mi carpeta de proyecto no lo va a listar pero si vamos a la carpeta lo veremos

Juan@DESKTOP-TJ9KCN3 MINGW64 ~/Desktop/youtube-git

$ ls

README.md



Si queremos ver el archivo oculto en el ls en consola podemos añadir el flag  -a  es decir ls -a

Juan@DESKTOP-TJ9KCN3 MINGW64 ~/Desktop/youtube-git

$ ls -a

.../  .gitignore  README.md

 

Iniciando el trakeo de git

Para iniciar el seguimiento de nuestro proyecto solo nos resta ejecutar el comando git init, solo necesitamos ejecutarlo una vez y ene l momento de ejecutarlo se crea una carpeta invisible

Juan@DESKTOP-TJ9KCN3 MINGW64 ~/Desktop/youtube-git

$ git init

Initialized empty Git repository in C:/Users/jujom/Desktop/youtube-git/.git/

 

Como en el caso anterior la puedo ver con un ls -a


Si abrimos esa carpeta oculta veremos una serie de archivos y directorios, aquí es donde Git va a ir haciendo el seguimiento de nuestro proyecto y guardando las ramas etc, por ello no tocaremos nada de esta carpeta

 

3 FLUJO DE TRABAJO

El flujo de Git consta de 3 estados locales y 1 remoto, estos estados son:

1.      Working Directory: Es el área correspondiente al estado modified y es la carpeta local en nuestra computadora donde almacenamos los archivos de nuestro proyecto.

2.      Staging Area: Es el área correspondiente al estado staged también se le llama index porque es el área donde git indexa y agrega los cambios realizados en los archivos previos a comprometerlos en su registro.

3.      Local Repository: Es el área correspondiente al estado commited, donde los cambios ya se han registrado en el repositorio de git, también se le llama HEAD porque indica en qué cambio se encuentra el puntero del repositorio.

4.      Remote Repository: Es el área correspondiente al estado remote y es el directorio remoto donde almacenamos los archivos del proyecto en alguna plataforma web como GitHub, GitLab, BitBucket. Git denomina origin al repositorio remoto.

 

En la siguiente figura podemos ver de forma gráfica este flujo de trabajo:


Una vez que hemos iniciado el seguimiento con el comando git init en una carpeta, cada vez modifiquemos, añadamos o eliminemos algo dentro de esa carpeta o en los archivos que contenga, obtendremos una alerta por parte de Git indicándonos que se ha modificado algo.

3.1  Estado modified a staging [ git add]

Entonces el estado modified sucede en el working directory, es decir en la carpeta donde estamos trabajando en local.

Veamos un ejemplo, ya en VScode. Si abrimos VS en la parte izquierda veremos que en el icono de git se nos indica que se han detectado dos cambios:



Si recordamos, en el apartado anterior creamos los archivos README y el gitignore, y después de crear estos archivos inicializamos el proyecto con git init, opr eso esos dos archivos para Git son cambios sin trakear y por ello nos indica que hay dos cambios pendientes.

Esos dos archivos se encuentran en el estado modifiedà ahora lo que queremos es pasarlos al estado Staging donde Git ya genera el índice de todos los cambios que se realicen  (ver figura 1), esto lo conseguimos con el comando:

git add

entonces desde mi consola git bash, si estoy situado dentro de la carpeta del proyecto

Juan@DESKTOP-TJ9KCN3 MINGW64 ~

$ cd Desktop

 

Juan@DESKTOP-TJ9KCN3 MINGW64 ~/Desktop

$ cd youtube-git

 

Juan@DESKTOP-TJ9KCN3 MINGW64 ~/Desktop/youtube-git (master)

$ ls -a

....git/  .gitignore  README.md

 

Juan@DESKTOP-TJ9KCN3 MINGW64 ~/Desktop/youtube-git (master)

 

Puedo ejecutar el comando git add y pasar esos dos archivos del directorio de trabajo a la zona de staging de git (estado stage).