Introducción
Los equipos de desarrolladores y mantenedores de software de código abierto generalmente administran sus proyectos a través de Git, un sistema de control de versiones distribuido que admite la colaboración.
Esta guía proporciona una referencia rápida a comandos útiles para trabajar y colaborar en un repositorio de Git.
Instalar e inicializar
Verifique su versión de Git con el siguiente comando, que también confirmará que Git está instalado.
git --version
Puede inicializar el directorio de trabajo actual como un repositorio de Git con el comando init
git init
Para copiar un repositorio Git alojado de forma remota existente, git clone
con la URL del repositorio o la ubicación del servidor (en el último caso, se utilizará ssh
git clone https://www.github.com/username/repo-name
Muestra el repositorio remoto de tu directorio Git actual.
git remote
Para una salida más detallada, use el indicador -v
git remote -v
Agregue Git upstream, que puede ser una URL o puede estar alojado en un servidor (en el último caso, conéctese con ssh
).
git remote add upstream https://www.github.com/username/repo-name
Puesta en escena
Cuando ha editado un archivo y lo ha marcado para la siguiente confirmación, se considera un archivo por fases.
Verifique el estado de su repositorio de Git, incluidos los archivos no almacenados y los archivos almacenados.
git status
Para preparar archivos modificados, use el add
, que se puede ejecutar varias veces antes de una confirmación. Si realiza cambios posteriores que desea incluir en la próxima confirmación, debe volver a ejecutar add
.
Puede especificar el archivo específico con add
.
git add my_script.py
Con .
puede agregar todos los archivos en el directorio actual, incluidos los archivos que comienzan con un .
.
git add.
Puede eliminar un archivo de la preparación mientras mantiene los cambios dentro del directorio de trabajo con reset
.
git reset my_script.py
Comprometerse
Una vez que los archivos están preparados, está listo para confirmar, que registrará los cambios que ha realizado en el repositorio.
Para confirmar archivos en etapas, ejecutará el commit
con su mensaje de confirmación significativo para que pueda realizar un seguimiento de las confirmaciones.
git commit -m "Commit message"
Puede condensar la puesta en escena de todos los archivos supervisados comprometiéndose con un solo paso.
git commit -am "Commit message"
Si necesita modificar el mensaje de confirmación, puede hacerlo con el indicador --amend
git commit --amend -m "New commit message"
Sucursales
Una rama en Git es un puntero flotante a una de las confirmaciones en el repositorio, lo que le permite aislar el trabajo y administrar el desarrollo y las integraciones de funciones. Puede obtener más información sobre las ramas leyendo la documentación de Git.
Enumere todas las ramas actuales con el comando branch
Se mostrará un asterisco ( *
) junto a la rama actualmente activa.
git branch
Crea una nueva rama. Permanecerá en la rama actualmente activa hasta que cambie a la nueva.
git branch new-branch
Navegue a cualquier rama existente y verifíquela en el directorio de trabajo actual.
git checkout another-branch
Puede consolidar la creación y el pago de una nueva rama usando el indicador -b
git checkout -b new-branch
Cambie el nombre de su sucursal.
git branch -m current-branch-name new-branch-name
Fusiona el historial de la rama especificada en la que estás trabajando actualmente.
git merge branch-name
Cancelar la fusión, en caso de conflictos.
git merge --abort
También puede seleccionar una confirmación en particular para unirse, utilizando la cadena que hace referencia a la confirmación específica, con el comando cherry-pick
git cherry-pick f7649d0
Una vez que haya fusionado una rama y ya no sea necesaria, puede eliminarla.
git branch -d branch-name
Si no ha unido una rama a main, pero está seguro de que desea eliminarla, puede forzar su eliminación.
git branch -D branch-name
Colabora y actualiza
Para descargar los cambios de otro repositorio, como un upstream remoto, usará el comando fetch
git fetch upstream
Fusionar las confirmaciones recuperadas. Tenga en cuenta que algunos repositorios pueden usar master
lugar de main
.
git merge upstream/main
Envíe o envíe confirmaciones de rama local a la rama del repositorio remoto.
git push origin main
Recupere y combine todas las confirmaciones de la rama de seguimiento remoto.
git pull
Inspeccionar
Ver el historial de confirmaciones de la rama activa actualmente.
git log
Muestra las confirmaciones que cambiaron un archivo en particular. Esto sigue al archivo independientemente del cambio de nombre del archivo.
git log --follow my_script.py
Muestra las confirmaciones que están en una rama y no en la otra. Este comando mostrará las confirmaciones presentes en la a-branch
y no activas en la b-branch
.
git log a-branch..b-branch
Mire el reflog
para ver cuándo se actualizaron por última vez las sugerencias de rama y otras referencias dentro del repositorio.
git reflog
Muestre cualquier objeto en Git a través de su cadena de confirmación o hash en un formato más legible por humanos.
git show de754f5
Muestra los cambios
El git diff
muestra cambios entre confirmaciones, ramas y más. Puede leerlo con más detalle en la documentación de Git.
Compare los archivos modificados ubicados en el área de preparación.
git diff --staged
Muestre la diferencia de lo que hay dentro de la a-branch
pero no dentro de la b-branch
.
git diff a-branch..b-branch
Muestre la diferencia entre dos confirmaciones específicas.
git diff 61ce3e6..e221d9c
Escondite
A veces, encontrará que ha realizado cambios en algunos códigos, pero antes de terminar, debe comenzar a trabajar en otra cosa. No está listo para aceptar los cambios que ha realizado hasta ahora, pero no quiere perder su trabajo. El git stash
le permitirá guardar los cambios locales y regresar al directorio de trabajo en línea con el HEAD
confirmación más reciente.
Guarda tu trabajo actual.
git stash
Vea lo que ha ocultado actualmente (escondido).
git stash list
Los stash@{0}
, stash@{1}
etc.
Muestra información sobre un alijo en particular.
git stash show stash@{0}
Para extraer los archivos del alijo actual del alijo y al mismo tiempo mantener el mismo alijo, use el comando apply
git stash apply stash@{0}
Si desea extraer archivos de un alijo y luego ya no es necesario, use el comando pop
git stash pop stash@{0}
Si ya no necesita los archivos guardados en un alijo en particular, puede drop
.
git stash drop stash@{0}
Si tiene varios alijos guardados y ya no necesita usarlos, puede eliminarlos con el comando clear
git stash clear
Ignorar los archivos
Si desea mantener los archivos en su directorio local de Git, pero no desea enviarlos a su proyecto, puede agregar estos archivos al .gitignore
para que no causen conflictos.
Utilice un editor de texto como nano o vim para agregar archivos al archivo .gitignore
nano.gitignore
Rebasar
Una rebase nos permite mover ramas cambiando el compromiso en el que se basan. Con rebase, puede deshacer o reformular confirmaciones.
Puede iniciar un rebase llamando a la cantidad de confirmaciones que ha realizado y desea rebasar ( 5
en el siguiente caso).
git rebase -i HEAD~5
Alternativamente, puede reajustar basándose en una confirmación o cadena hash en particular.
git rebase -i 074a4e5
Después de confirmar o reformular las confirmaciones, puede completar el rebase de la rama sobre la última versión del código ascendente del proyecto. Tenga en cuenta que algunos repositorios pueden usar master
lugar de main
.
git rebase upstream/main
Revertir y restaurar
Puede revertir los cambios realizados en una determinada confirmación mediante revert
. Su árbol de trabajo deberá limpiarse para lograr esto.
git revert 1fc6665
A veces, incluso después de un rebase, es necesario restablecer el árbol de trabajo. Puede volver a una confirmación determinada y descartar todos los cambios con el siguiente comando.
git reset --hard 1fc6665
Para forzar el envío de su última confirmación no conflictiva conocida al repositorio de origen, deberá usar --force
.
Advertencia:master
git push --force origin main
Para eliminar archivos y subdirectorios locales sin seguimiento del directorio de Git para una rama de trabajo limpia, puede usar git clean
.
git clean -f -d
Si necesita cambiar el repositorio local para que se parezca a la rama principal ascendente actual (es decir, si hay demasiados conflictos), puede realizar un restablecimiento completo.
Notaserá destruida
git reset --hard upstream/main
Conclusión
Esta guía cubre algunos de los comandos de Git más comunes que puede usar al administrar repositorios y colaborar en software.
Para obtener más información, lea este tutorial: Git - guía simple.
Hay muchos otros comandos y variaciones que pueden resultarle útiles como parte de su trabajo con Git. Para obtener más información sobre todas las opciones disponibles, puede hacer lo siguiente para obtener información útil.
git --help