## Conceptos b谩sicos de GIT para principiantes en desarrollo web 馃懚 ## 驴Qu茅 es `Git`? 1. Git es un sistema de control de versiones distribuido. 2. Todo el c贸digo y su historial est谩n disponibles en la computadora de cada desarrollador, lo que facilita la creaci贸n de ramas y la fusi贸n de cambios. 3. Se utiliza como Sistema de Control de Versiones (VCS) para rastrear cambios en archivos de computadora. * Control de versiones distribuido * Coordina el trabajo entre varios desarrolladores * Qui茅n hizo qu茅 cambios y cu谩ndo * Revertir cambios en cualquier momento * Repositorios locales y remotos ## CONCEPTOS DE GIT * Mantiene un historial de cambios en el c贸digo * Toma "instant谩neas" de tus archivos * T煤 decides cu谩ndo tomar una instant谩nea haciendo un "commit" * Puedes visitar cualquier instant谩nea en cualquier momento * Puedes preparar archivos antes de hacer un commit ### Diferencia entre Git y GitHub | Git | GitHub | | ------- | ----------- | | Git es un software | GitHub es un servicio en la nube | | Git se instala localmente en el sistema | GitHub est谩 alojado en la web | | Es una herramienta de l铆nea de comandos | Es una interfaz gr谩fica | | Git es mantenido por Linux | GitHub es mantenido por Microsoft | | Se centra en el control de versiones y el intercambio de c贸digo | Se centra en el alojamiento centralizado de c贸digo fuente | | Git tiene licencia de c贸digo abierto | GitHub incluye un nivel gratuito y uno de pago | | Git fue lanzado en 2005 | GitHub fue lanzado en 2008 | ## Instalaci贸n de GIT * Linux (Debian) `$sudo apt-get install git` * Linux (Fedora) `$sudo yum install git` * [Descargar](http://git-scm.com/download/mac) para Mac * [Descargar](http://git-scm.com/download/win) para Windows ### Pasos del proceso de instalaci贸n: 1. 2. 3. 4. 5. 6. Luego contin煤a con Siguiente > Siguiente > Siguiente > Instalar 7. ### Despu茅s de la instalaci贸n, necesitamos configurar Git usando Git Bash 1. `git config --global user.name 'TuNombre'` 2. `git config --global user.email 'TuCorreo'` ___ ## Comandos de Git ___ ### Obtener y crear proyectos | Comando | Descripci贸n | | ------- | ----------- | | `git init` | Inicializar un repositorio Git local | | `git clone ssh://git@github.com/[username]/[repository-name].git` | Crear una copia local de un repositorio remoto | ### Instant谩neas b谩sicas | Comando | Descripci贸n | | ------- | ----------- | | `git status` | Verificar el estado | | `git add [file-name.txt]` | Agregar un archivo al 谩rea de preparaci贸n | | `git add -A` | Agregar todos los archivos nuevos y modificados al 谩rea de preparaci贸n | | `git commit -m "[commit message]"` | Confirmar cambios | | `git rm -r [file-name.txt]` | Eliminar un archivo (o carpeta) | | `git push` | Subir al repositorio remoto | | `git pull` | Descargar los 煤ltimos cambios del repositorio remoto | ### Ramas y fusi贸n | Comando | Descripci贸n | | ------- | ----------- | | `git branch` | Listar ramas (el asterisco indica la rama actual) | | `git branch -a` | Listar todas las ramas (locales y remotas) | | `git branch [branch name]` | Crear una nueva rama | | `git branch -D [branch name]` | Eliminar una rama | | `git push origin --delete [branch name]` | Eliminar una rama remota | | `git checkout -b [branch name]` | Crear una nueva rama y cambiar a ella | | `git checkout -b [branch name] origin/[branch name]` | Clonar una rama remota y cambiar a ella | | `git branch -m [old branch name] [new branch name]` | Renombrar una rama local | | `git checkout [branch name]` | Cambiar a una rama | | `git checkout -` | Cambiar a la 煤ltima rama seleccionada | | `git checkout -- [file-name.txt]` | Descartar cambios en un archivo | | `git merge [branch name]` | Fusionar una rama con la rama activa | | `git merge [source branch] [target branch]` | Fusionar una rama con una rama objetivo | | `git stash` | Guardar cambios en un directorio de trabajo sucio | | `git stash clear` | Eliminar todas las entradas guardadas | ### Compartir y actualizar proyectos | Comando | Descripci贸n | | ------- | ----------- | | `git push origin [branch name]` | Subir una rama a tu repositorio remoto | | `git push -u origin [branch name]` | Subir cambios al repositorio remoto (y recordar la rama) | | `git push` | Subir cambios al repositorio remoto (rama recordada) | | `git push origin --delete [branch name]` | Eliminar una rama remota | | `git pull` | Actualizar el repositorio local al 煤ltimo commit | | `git pull origin [branch name]` | Descargar cambios del repositorio remoto | | `git remote add origin ssh://git@github.com/[username]/[repository-name].git` | Agregar un repositorio remoto | | `git remote set-url origin ssh://git@github.com/[username]/[repository-name].git` | Configurar la rama de origen de un repositorio a SSH | ### Inspecci贸n y comparaci贸n | Comando | Descripci贸n | | ------- | ----------- | | `git log` | Ver cambios | | `git log --summary` | Ver cambios (detallado) | | `git log --oneline` | Ver cambios (breve) | | `git diff [source branch] [target branch]` | Previsualizar cambios antes de fusionar | --- **Descargo de responsabilidad**: Este documento ha sido traducido utilizando el servicio de traducci贸n autom谩tica [Co-op Translator](https://github.com/Azure/co-op-translator). Aunque nos esforzamos por garantizar la precisi贸n, tenga en cuenta que las traducciones automatizadas pueden contener errores o imprecisiones. El documento original en su idioma nativo debe considerarse como la fuente autorizada. Para informaci贸n cr铆tica, se recomienda una traducci贸n profesional realizada por humanos. No nos hacemos responsables de malentendidos o interpretaciones err贸neas que puedan surgir del uso de esta traducci贸n.