Comandos básicos de Git
Git es un sistema de control de versiones, que registra los cambios realizados sobre un archivo o conjunto de archivos a lo largo del tiempo, esto nos permite obtener una versión especifica de nuestro proceso de desarrollo.
El directorio actual se transforma en un repositorio.
git init |
Crea un directorio el cual será un repositorio.
git init <directorio> |
Crea un directorio con un repositorio vació, el cual sera un repositorio central.
git init --bare <directorio.git> |
Crea un directorio con un repositorio vació, el cual sera un repositorio central, --shared
da permisos de escritura al grupo de repositorios.
git init --bare --shared <directorio.git> |
Clona un repositorio existente, repo
puede ser local /d/repositorios/proyecto.git
o externo https://github.com/laravel/laravel.git
.
git clone <repo> |
Clona un repositorio en un directorio.
git clone <repo> <directory> |
Define el nombre del autor que se usará en todos los commits por el usuario actual.
git config --global user.name <nombre> |
Define el correo electrónico del autor que se usará en todos los commits por el usuario actual.
git config --global user.email <email> |
Guarda los cambios de file
para el próximo commit.
git add <file> |
Guarda todos los cambios para el próximo commit.
git add -A |
Confirma la instantánea preparada, usa message
como mensaje de confirmación.
git commit -m "<mensaje>" |
Lista qué archivos se han preparado, no preparado y sin seguimiento.
git status |
Muestra la historia de commit completa con el formato predeterminado.
git log |
Limita el número de commits con limit
. Por ejemplo, git log -n 3 mostrará solo 3 commits.
git log -n <limit> |
Resume cada commit en una sola línea. Esto es útil para tener un vista general del historia del proyecto.
git log --oneline |
Lista todas las ramas en el repositorio.
git branch |
Crea una nueva rama con el nombre branch
.
git branch <branch> |
Elimina una rama remota
git push -d origin branch_name |
Elimina la rama especificada. Esta es una operación segura en la que Git evita que elimines la rama si tiene cambios sin fusionar (merge).
git branch -d branch_name |
Fuerza la eliminación de la rama especificada, incluso si tiene cambios no fusionados. Este es el comando que se ha de usar si quieres borrar de forma permanente todos los commits asociados con una línea de desarrollo específica.
git branch -D branch_name |
Elimina una rama remota en el repositorio local
git branch -d -r origin/branch_name |
Renombra la rama actual a branch
.
git branch -m branch_new |
Cambia a la rama branch
.
git checkout <branch> |
Crea y cambia a la nueva rama.
git checkout -b <new-branch> |
Fusiona la rama especificada con la rama actual. Git determinará el algoritmo de fusión de forma automática.
git merge <branch> |
Fusiona la rama de forma estratégica -X, --strategy-option value
, los valores ours
y theirs
Ejemplo 1: fusiona la rama conservando los cambios de branch
git merge -X theirs <branch> |
Ejemplo 2: fusiona la rama conservando los cambios de la rama actual
git merge -X ours <branch> |
Diferencia entre dos ramas.
git diff --stat --color <master> <branchName> |
o
gitk --all |
Click derecho en el commit, seleccionas Mark this commit
y luego click derecho en el otro commit, seleccionas Diff marked commit -> this
Vuelve a la rama master.
git checkout master |
Lista las conexiones remotas que tienes a otro repositorios.
git remote -v |
Crea una conexión nueva a un repositorio remoto. Después de añadir un remoto, se podrá usar nombre name
como atajo de url
en otros comandos Git.
git remote add <name> <url> |
Elimina la conexión al repositorio remoto llamado
git remote rm <name> |
Recupera fetch
todas las ramas del repositorio . Esto también descarga todos los commits y archivos que se necesitan del otro repositorio.
git fetch <remote> <branch> |
Recupera fetch
la copia remota especificada de la rama actual e inmediatamente la fusiona con la copia local. Esto es lo mismo que con git fetch
seguido de git merge origin/
.
git pull <remote> |
Envía push
la rama especificada a remoto
, junto con todos los commits necesarios y los objetos internos. Esto crea una rama local en el repositorio de destino. Para evitar sobrescribir commits, Git no permite envíar push
cuando resulta en una fusión que no es con avance rápido en el repositorio de destino.
git push <remote> <branch> |