Git
Git es un sistema de control de versiones distribuido, diseñado principalmente
para facilitar el trabajo colaborativo en proyectos de software, aunque también
puede ser utilizado para el seguimiento de cambios en cualquier tipo de
archivos. Fue creado por Linus Torvalds en 2005 para el desarrollo del kernel de
Linux.
En términos simples, Git permite a los desarrolladores mantener un historial de
cambios en sus proyectos, lo que les permite realizar un seguimiento de quién
hizo qué cambios, cuándo se hicieron y por qué se hicieron. Esto facilita la
colaboración en equipo, ya que múltiples personas pueden trabajar en el mismo
proyecto simultáneamente sin temor a sobrescribir el trabajo de los demás.
Algunas de las características clave de Git incluyen ramificación (branching),
fusión (merging), etiquetado (tagging), y la capacidad de trabajar de forma
distribuida, lo que significa que cada usuario tiene una copia completa del
repositorio en su propia máquina. Esto permite a los desarrolladores trabajar de
forma independiente sin depender de una conexión a internet constante.
Git se ha convertido en uno de los sistemas de control de versiones más
populares y ampliamente utilizados en la industria del desarrollo de software,
tanto en proyectos de código abierto como en entornos empresariales. Además,
es compatible con una variedad de plataformas y sistemas operativos, lo que lo
hace altamente versátil y accesible para una amplia gama de usuarios.
¿Qué es un repositorio?
Cuando trabajamos con GIT lo que creamos es un repositorio, es decir, un lugar donde
guardamos y administramos nuestros archivos.
Existen dos tipos de repositorios:
- Locales: Son aquellos que se crean de forma local en nuestra pac y que no
necesariamente son compartidos.
- Remotos: Son aquellos que se encuentran alojados en algún servidor externos y que
puede ser accedido desde cualquier lugar. Un ejemplo de repositorio remoto puede ser
Git-Hub.
Git Init
git init es un comando en Git que se utiliza para inicializar un nuevo repositorio
Git en un directorio o carpeta específica. Cuando ejecutas git init en un
directorio, Git crea un nuevo repositorio vacío en esa ubicación.
Cuando se ejecuta git init, Git configura el directorio actual y sus subdirectorios
para que puedan ser rastreados por Git. Esto significa que Git comenzará a
hacer un seguimiento de los cambios en los archivos en ese directorio y sus
subdirectorios, y mantendrá un historial de versiones de los mismos.
Después de ejecutar git init, el directorio se convierte en un repositorio Git local,
y se crea una carpeta oculta llamada ".git" en ese directorio. Esta carpeta
contiene todos los metadatos y configuraciones necesarias para el control de
versiones del proyecto.
Es importante tener en cuenta que git init solo se ejecuta una vez al inicio de un
proyecto para inicializar el repositorio. Una vez que se ha ejecutado git init,
puedes comenzar a agregar archivos al repositorio, realizar confirmaciones
(commits), crear ramas (branches), entre otras operaciones disponibles en Git.
Git Config
git config es un comando utilizado para configurar opciones específicas de Git a
nivel global, local o del repositorio. Permite establecer opciones como el
nombre de usuario, dirección de correo electrónico, ajustes de formato, alias de
comandos, y más. Esta configuración se puede realizar a tres niveles diferentes:
1. Global: Se aplica a todos los repositorios en la máquina del usuario. Esto
significa que las configuraciones globales afectarán a todos los
repositorios Git en el sistema.
2. Local: Se aplica solo al repositorio actual. Las configuraciones locales son
específicas de ese repositorio en particular y anulan las configuraciones
globales si existen.
3. Del Repositorio: Se aplica solo al repositorio actual y es almacenada
dentro del repositorio, generalmente en el archivo .git/config. Esto puede
ser útil cuando deseas compartir ciertas configuraciones con otros
colaboradores en el mismo repositorio.
Algunos ejemplos de uso de git config incluyen:
Configurar el nombre de usuario:
git config --global [Link] "Tu Nombre"
Configurar la dirección de correo electrónico:
git config --global [Link] tu@[Link]
Ver todas las configuraciones:
git config –list
Configurar un alias para un comando Git:
git config --global [Link] commit
Git Remote add origin
git remote y origin son conceptos relacionados en Git que se utilizan comúnmente
al trabajar con repositorios remotos.
git remote: Es un comando utilizado para administrar conexiones a
repositorios remotos. Permite listar, agregar, eliminar y renombrar
conexiones a repositorios remotos asociadas con un repositorio local. Al
ejecutar git remote -v, se muestran las URL de los repositorios remotos
vinculados y sus alias. Por ejemplo:
git remote -v
origin [Link] (fetch)
origin [Link] (push)
origin: Es un nombre convencionalmente utilizado como alias predeterminado para el
repositorio remoto principal al que se clonó un repositorio local. Cuando clonas un
repositorio desde un servidor remoto, por ejemplo, desde GitHub, Git automáticamente
asigna el nombre origin a ese repositorio remoto. Por lo tanto, cuando haces referencia
a origin en comandos como git push o git pull, estás interactuando con el repositorio
remoto principal al que clonaste.
Git Status
git status es un comando utilizado en Git para mostrar el estado actual del
directorio de trabajo y del área de preparación (también conocida como
"stage") en relación con el repositorio Git. Proporciona información sobre los
archivos que han sido modificados, agregados al área de preparación o que aún
no están rastreados por Git.
Cuando ejecutas git status, Git te mostrará información como:
Los archivos modificados en el directorio de trabajo que aún no han sido
agregados al área de preparación.
Los archivos que han sido agregados al área de preparación y están listos
para ser confirmados.
Los archivos que aún no están rastreados por Git.
La rama actual en la que te encuentras y si hay cambios locales que no
han sido confirmados.
git status es una herramienta muy útil para entender el estado actual de tu
repositorio Git y para determinar qué pasos debes tomar a continuación, como
agregar archivos al área de preparación con git add, confirmar cambios con git
commit, o realizar otras acciones según sea necesario para avanzar en tu trabajo.
Git add y git commit
git add y git commit son dos comandos fundamentales en Git que se utilizan en
conjunto para guardar los cambios en un repositorio Git.
1. git add: Este comando se utiliza para agregar cambios específicos de
archivos al área de preparación (o "stage") en Git. Antes de confirmar
(commit) los cambios en Git, es necesario agregarlos al área de
preparación. Puedes agregar archivos específicos o todos los archivos
modificados en tu directorio de trabajo.
git add nombre_del_archivo
2. git commit: Este comando se utiliza para confirmar los cambios que están en el
área de preparación y guardarlos en el historial de versiones del repositorio Git.
Cada confirmación (commit) representa un punto en la historia del proyecto y
suele estar acompañada de un mensaje que describe los cambios realizados.
git commit -m "Mensaje descriptivo de los cambios"
Git Push
El comando git push -u origin main se utiliza para enviar (push) los cambios
confirmados desde tu repositorio local a un repositorio remoto. Aquí está el
significado de cada parte del comando:
git push: Es el comando para enviar los cambios locales confirmados al
repositorio remoto.
-u: Es una opción corta de --set-upstream , que establece la rama local como
seguidora de una rama en el repositorio remoto. Esto significa que en
futuros git push o git pull, Git sabe a qué rama remota enviar o desde
dónde traer los cambios sin necesidad de especificarlo explícitamente
cada vez.
origin: Es el nombre dado por defecto al repositorio remoto que clonaste.
Generalmente, este es el nombre utilizado para referirse al repositorio
remoto principal.
main: Es el nombre de la rama en el repositorio remoto donde estás
enviando tus cambios. En algunos casos, la rama principal puede llamarse
main, master, o puede tener otro nombre según la configuración del
repositorio.