Let’s Git started
Let’s Git started
¿Qué es Git y por qué lo estamos usando?
Git es una sistema de control de versiones, específicamente un sistema para rastrear cambios en archivos del computador (principalmente en el directorio del proyecto). Está diseñado para administrar el código fuente, lo que permite a los miembros del equipo trabajar en el mismo código al mismo tiempo sin exagerar los cambios de otros, tambien para seguir los cambios individuales como una versión separada. Para comenzar con Git necesitamos hacer un proyecto como repositorio de Git, generalmente lo llamamos ‘Repositorio Local’. Para hacer esto podemos usar el comando ‘git init’.
Cmd: git init
Este comando se usa para crear el nuevo repositorio git, simplemente inicia un nuevo repositorio donde podemos almacenar los archivos de proyecto y rastrearlos fácilmente.
Comando de configuración Git
Necesitamos hacer una ‘configuración’ básica para git como cada herramienta/software que se necesita hacer durante la instalación. Estas son las primeras tareas al configurar su entorno Git. Le permite instruir a Git como cualquier otro software sobre cómo desea que funcione para usted. Después de inicializar Git en el directorio, debe vincular su nombre de usuario y dirección de correo electrónico a su perfil de Git. Puede usar el siguiente comando para hacer lo mismo.
git config --global user.name "Suhas Gavad" git config --global user.email "suhas.gavad@tudip.nl"
Existe niveles de configuración que podemos hacer, uno es con la opción global que básicamente funciona como la configuración predeterminada para toda la configuración del repositorio git en su sistema. Otro es con la opción local que solamente se aplica al repositorio donde está ejecutando este comando. Git agrega esta información a cada uno de sus cambios y operaciones en git y permite que otras personas (que estén trabajando en el mismo repositorio/código/proyecto) identifiquen los cambios que usted realizó. Le permite dirigir a Git como quiera que funcione para usted.
¿Cómo funciona Git?
Comandos básicos de Git que generalmente necesitan realizar operaciones de Git:
Cree Comandos
- Clone una proyecto/repositorio existente.
Cmd: git clone <remote url>
- Cree un nuevo repositorio local.
Cmd: git init
Comandos de cambios local
- Verifique los archivos modificados en su directorio de trabajo.
Este comando se usa para verificar el estado de los archivos del proyecto, ya sea que se hayan modificado o no. Si se modificaron los archivos entonces se mostrará la lista de archivos/directorios.
Cmd: git status
- Verifique los cambios a los archivos rastreados
Este comando se usa para verificar la diferencia entre la última versión de los archivos y la versión actual de los archivos modificados. Simplemente muestra los contenidos recién agregados/eliminados/modificados en el repositorio/proyecto/archivos.
Cmd: git diff
- Agregue cambios actuales a la siguiente confirmación
Este comando se usa para agregar los archivos recién agregados o modificados a la rama actual.
Cmd: git add <filepath>
- Confirme cambios locales por etapas en los archivos rastreados
Este comando se utiliza para confirmar los archivos agregados recientemente a la sucursal y guardar los cambios en el proyecto/repositorio. Opciones que podemos usar con: ‘-m’ para especificar el mensaje de confirmación.
Cmd: git commit
Comandos de ramas y etiquetas
- Verifique la rama actual.
Este comando se usa para verificar la rama actual y para visualizar la lista de nombres de la rama git disponible.
Cmd: git branch
- Enumere todas las ramas existentes.
Cmd: git branch -av
- Cambie entre rama. El comando ‘git checkout’ generalmente realiza operaciones relacionadas con git branch / files. Las variaciones que usamos generalmente con esto son:
- Cambie de una a otra rama.
Cmd: git checkout <branch name>
- Cree y cambie a una nueva rama.
-
Cmd: git checkout -b <new-branch name>
- Elimine todos los cambios modificados del archivo especificado.
-
Cmd: git checkout <fileName/path>
- Cambie de una a otra rama.
- Elimine una rama local.
Este comando se usa para eliminar la rama del repositorio local.
Cmd: git branch -d <branch>
- Elimine una rama en el control remoto.
Cmd: git branch -dr <remote/branch>
ACTUALIZAR Y PUBLICAR Comandos
- Obtenga los cambios y fusione/integre directamente en HEAD.
Este comando se usa para extraer el proyecto/archivo/código de la ubicación remota.
Cmd: git pull <remote> <branch>
- Publique sus cambios locales en un repositorio remoto
Este comando se usa para publicar los cambios confirmados en la ubicación remota. Opciones que podemos usar con: ‘-f’ para publicar cambios de manera enérgica.
Cmd: git push <remote> <branch>
Comandos MERGE & REBASE
- Combine en tu HEAD/branch actual.
Simplemente combine una rama en la rama padre o en la rama maestra.
Cmd: git merge <branch>
- Vuelva a establecer su HEAD actual en
Cmd: git rebase <branch>
- Aborte una rebase
Se usa para abortar la operación de rebase.
Cmd: git rebase --abort
- Continuar una rebase después de resolver conflictos.
Continúa el proceso de rebase solo cuando todos los conflictos se resuelven.
Cmd: git rebase --continue
Comandos de Operaciones de UNDO GIT
- Descarte todos los cambios locales en su directorio de trabajo.
Elimine todos los cambios de archivos.
Cmd: git reset --hard HEAD
- Descarte cambios locales en un archivo específico.
Restaure todos los cambios en el archivo hasta la última confirmación.
Cmd: git checkout HEAD <file>
- Restablezca tu puntero HEAD a una confirmación especificada y descarta todos los cambios desde entonces.
Elimine todos los cambios realizados después del ID de confirmación especificado en el comando.
Cmd: git reset --hard <commit>
- Mantenga todos los cambios como cambios no escalonados.
Esto eliminará la confirmación, pero mantendrá los cambios confirmados en el área organizada en el repositorio local.
Cmd: git reset <commit>
Comandos COMMIT HISTORY
- Muestre todas las confirmaciones, comenzando con la información de la confirmación más reciente.
Muestre la secuencia de confirmaciones y la información de confirmación respectiva. Ejemplo. Correo electrónico y confirmación de identificación de referencia.
Cmd: git log
- Mostrar cambios a lo largo del tiempo para un archivo específico.
Cmd: git log -p <file>
- Quién cambió qué y cuándo en
Cmd: git blame <file>
Operaciones avanzadas de Git
Rebase: Git ofrece dos formas de integrar/migrar los cambios de una rama a otra, es decir, ‘combinar’ y ‘rebase’. puede tomar todos los cambios que se han comprometido en una rama y combinarlos/integrarlos en otra.
Este proceso rebasa automáticamente la rama actual en , que puede ser cualquier tipo de referencia de confirmación (por ejemplo, una identificación, un nombre de rama, una etiqueta o una referencia relativa a HEAD). Esto le permite limpiar el historial de Git-commit al eliminar/dividir/alterar una serie existente de confirmaciones. Step 1)
Cmd: git rebase -i <last commit number from which you want to rebase>
Step 2)
Cmd: git pull --rebase origin <master branch name>
Step 3)
Cmd: git push origin <current branchname>
Después de presionar el comando del paso 1, se abrirá la ventana/terminal de squash en la que podemos modificar la información de confirmación. Mostrará las confirmaciones realizadas/hechas después del último número de confirmación que ingresó. Y también especifica algunas operaciones para realizar exactamente debajo de la lista de confirmaciones. En este paso después del squashing, si ocurre algún conflicto, el proceso de rebase se detendrá hasta que al menos resolvamos los conflictos. Después de resolver los conflictos, tenemos que hacer ‘git rebase -continuar’ para continuar el proceso de rebase.
Nota: Nota: No aplaste confirmaciones que ya haya publicado con otros. Está cambiando la historia, lo que causará problemas para otros. Puedes abortar el proceso de rebase usando el comando ‘git rebase -abort’.
Ejemplo. Explicando con simples operaciones de proyecto git.
Puede seguir secuencialmente los pasos a continuación para realizar operaciones de git en cualquier proyecto.
- Clone repository. Cmd: git clone <remote url>
- Pull down the repository. Cmd: git pull
- Check first for the current git branch. Cmd: git branch
- Starting with new branch. Cmd: git checkout -b newBranchName
- Adding the modified files to the current branch. You can check the modified files list using `git status`. Cmd: git add <modified file path>
- Committing the added files to current branch. Cmd: git commit -m or git commit
- Publishing your changes into your repository. Cmd: git push
Consejos que pueden ser útiles
- Busque una rama que haya confirmado “sdf54sd5f4s6d54f65sd54f65sdf46d54f4”
Cmd: git branch --contains sdf54sd5f4s6d54f65sd54f65sdf46d54f4
- Edite la configuración de git.
Cmd: sudo nano .git/config
- Elimine el archivo agregado pero no confirmado.
Cmd: git reset HEAD
- Deshaga la última confirmación (solo en local).
Cmd: git reset HEAD~1
- Determine quién hizo los cambios en un archivo.
Cmd: git blame <file path>
- Verifique la diferencia en el archivo o el código modificado en el archivo.
Cmd: git diff
- Elimine una rama local.
Cmd: git branch -d <branch name>
Es posible que necesite cambiar el nombre del autor/commit_comments de la confirmación para que pueda seguir estos pasos. Por ejemplo, si su historial de compromiso es 1-2-3-4-5-6 con 6 como HEAD, y desea cambiar el autor de 3 y 4, entonces usted …
- Especifique git rebase -i 2 (nota: si es 1 lo que necesita editar, use git rebase -i –root)
- Cambie la opción para ambos 3 y 4 para editar. es decir, al comienzo de la línea de confirmación específica, escriba ‘e’.
- Una vez que comience el rebasing, primero se detendría a las 3 para realizar cambios específicos.
- Entonces usted haría git commit –amend –author=”Nombre del autor <email@address.com>” para modificar la información de confirmación.
- Luego git rebase –continue. Se pausaría de nuevo en el 4
- Entonces, git commit –amend –author=”Nombre del autor <email@address.com>” otra vez git rebase –continue
- git rebase –continue
- Después de completar la rebase, obtendría cambios en la información de compromiso modificada recientemente.
Hay muchas interfaces disponibles para Git como GitHub, GitLab, Savannah, BitBucket y SourceForge, etc.
Herramientas GUI disponibles para simplificar las operaciones de Git:
- GitKraken (Windows, Mac, Linux)
- GitHub Desktop (Windows, Mac)
- SmartGit (Windows, Mac, Linux)
- Tower (Windows, Mac)
- git-cola (Windows, Mac, Linux)
- CodeReview (Windows, Mac, Linux)