Git: Sistema de control de versiones distribuido, cada desarrollador trabaja en una rama diferente. Posteriormente, estas ramas se fusionan de nuevo en la rama principal.
Nombre de usuaio y correo electronico en Git que son el mismo que GitHub:
git config --global user.name "<Tu nombre>"
git config --global user.email "<Tu correo>"Comprobar configuracón de Git:
git config --list
git config -lrepositorio: Almacen de versiones de los ficheros de un proyecto y sus históricos.
Control de versiones: Sistema que registra cada cambio que hacemos, permite tener un historico de los cambios, cuando se hicieron y quien los hizo. Importante por rendimiento y es flexible.
CVS: (Concurrent Version System), es el primer control de versiones.
configurar alias:
git config --global alias.stats "<comando git sin "git">"
git statsIndica a Git que quieres incluir actualizaciones en un archivo/directorio. Pasa de Modified a Staged.
git add .
git add <file>Ma última modificación de cada línea en un archivo, mostrando información sobre el commit y el autor.
git blame <archivo>Ver información mas detallada y legible:
git blame -c <archivo>Especificar un rango de lineas (del 12 a 24):
git blame <archivo> -L12,24
git blame <archivo> -L12,24 -cVer ramas disponibles:
git branch
git branch -aEliminar una rama local:
git branch -d <nombre Rama>
git branch -D <nombre Rama>Crear una nueva rama:
git branch <nombre de nueva rama>Renombrar una rama en Git. La opción -M es un atajo para --move --force, lo que significa que Git forzará el renombramiento incluso si una rama con el nuevo nombre ya existe.
git branch -M <nombre de nueva rama>
git branch -m <Nombre actual de rama><Nombre nuevo de rama>Rama de git: Es un snapshot, para bifurcaciones y desarrollo no lineal, colaborativo e independiente.
Conflictos a fusionar 2 Ramas: Se da cuando Git no puede determinar que cambio es mas importante que otro.
Cambiar de rama o restaurar archivos en el árbol de trabajo. Cambiar a una rama específica:
git checkout <nombre rama>Restaurar un Archivo a un Commit Específico:
git checkout <commitID>Crear y cambiar a una nueva rama
git checkout -b <nombre rama>Clonar un repositorio con todas sus ramas y archivos:
git clone <URL repositorio GitHub>Para ahorrar disco duro y tiempo al clonar un repositorio, clonando solo la ultima version:
git clone <URL repositorio GitHub> --depth=1Commit: Registrar cambios del repositorio. Como una fotografía con autor, fecha y localización.
Confirmar los cambios realizados en el repositorio:
git commit
git commit -m "<Título>"
git commit -m "<Título>" -m "<descripción>"Para sobreescribir el título del ultimo commit, cambiando el ID y ocultando el commit cambiado:
git commit --ammend -m "<Título>"Realizar dos acciones de manera combinada, agregar (stages) y confirmar (commits) los cambios realizados en el repositorio:
git commit -am "<descripción>"Ver cambios no preparados:
git diffVer diferencias:
git diff <commit1> <commit2>
git diff <rama1> <rama2>Traer cambios remotos sin fusionar:
git fetchDescarga solo del remoto llamado origin (el predeterminado). Es lo mismo que el anterior si solo tienes un remoto:
git fetch originDescarga referencias de todos los remotos configurados. Útil si trabajas con más de un remoto (por ejemplo: origin, upstream):
git fetch --allDescarga solo una rama específica desde el remoto:
git fetch <remote> <branch>Elimina de tu lista local las ramas remotas que ya no existen en el servidor:
git fetch --pruneSimula un fetch sin hacer cambios reales. Solo te muestra lo que bajaría:
git fetch --dry-runHace un fetch superficial, descargando solo el último commit de cada rama. Muy útil para ahorrar espacio si no necesitas el historial completo:
git fetch --depth=1ver donde y cuantas veces se uso una palabra:
git grep <palabra>Ver en que linea se uso la palabra:
git grep -n <palabra>Cuantas veces aparece la palabra:
git grep -c <palabra>Comando para inicializar Git en un directorio. Existen 2 formas.
git init <nombre Proyecto>
cd <Proyecto>cd <directorio de Proyecto>
git initVer el historial de commits en el repositorio Git.
git logVer todo el historial de commits en el repositorio Git.
git log --allVer solo descripcion de los commits:
git log --onelineVer los commits de forma grafica con conexiones:
git log --graphgit --graph --oneline
git log --all --graph
git log --all --graph --decorate
git log --all --graph --decorate --onelineBuscar la palabra en los comentarios de los commit`s:
git log -S "<palabra>"Head: Puntero que referencia el punto actual en el historial de cambios.
Traer los cambios de una rama a la rama actual:
git merge <nombre Rama>Abrir el editor antes de hacer commit:
git merge --editcancelar una operación de fusión que se encuentra en curso:
git merge --abortEvitar el commit automático:
git merge --no-commitGit creará un commit de fusión adicional:
git merge <nombre Rama> --no--ffUna vez que los repositorios esten enlazados se sicronizan los cambios del repositorio local y remoto, puede usarse uno de los siguientes:
git push --all
git push origin <nombre Rama>Subir los cambios locales de una rama específica a un repositorio remoto, y al mismo tiempo, establece una relación de seguimiento entre la rama local y la rama remota:
git push -u origin <nombre Rama>Descargar cambios del repositorio remoto(GitHub) al local.
git pullActualizar la rama con los cambios más recientes del repositorio remoto origin
git pull origin <nombre rama>Si tenemos historial distinto y no se nos permite un pull normal.Para fusionar ambos historiales sin perder los cambios locales, usa:
git pull origin <nombre rama> --allow-unrelated-historiesMuestra un registro de todos los cambios que se han hecho en el puntero HEAD.
git reflogEnlazar un repositorio local con uno remoto, un repositorio local puede tener enlazados varios repsitorios remotos:
git remote add origin <URL repositorio GitHub>Eliminar ramas remotas de mi repositorio local que ya no se usan:
git remote prune originVer que repositorios remotos estan enlazados con el repositorio local:
git remote -vEliminar un enlace:
git remote remove originCambia la URL del remoto origin a una nueva URL:
git remote set-url origin <URL repositorio GitHub>Es una mala practica pero e usa como ultimo recurso. Restablece HEAD: Mueve el puntero HEAD al commit especificado por .
git reset --hard <ID commit>Restaura un archivo al estado del último commit.
git restore <file>Quitar un archivo del área de staged y restaurarlo al estado del último commit.
git restore --staged <file>Eliminar archivos del índice de Git y del árbol de trabajo.
git rm <file>
git rm <file1> <file1>Para conservar el archivo y solo eliminar el ultimo add:
git rm --cached <file>Cuantos comits hizo cada miembro, incluyendo merges:
git shortlog -snCuantos comits hizo cada miembro, incluyendo eliminados y merges:
git shortlog -sn --allgit shortlog -sn --all --no-mergesVer detalles de un commit específico:
git show <SHA_del_commit>Ver el commit más reciente:
git showDescripción del árbol de trabajo y ver el estado de los archivos.
git statusEstados de git:
- Modified: Archivos con cambios no confirmados.
- Staged: Archivo marcado como preparado para ser confirmado.
- Commited: Archivo grabado en el repositorio local (commit).
Ingresar a una rama:
git switch <nombre Rama>Crear e ingresar a la nueva rama:'
git switch -c <nombre Rama>Recomendable hacerlo en el directorio home, no en algun proyecto. Crear la llave:
ssh-keygen -t rsa -b 4096 -C "<Tu correo>"Ver el pid de la llave:
eval $(ssh-agent -s)Vamos al directorio donde se creo la llave ("cd /.ssh" en caso de ser home)
ssh-add ~/.ssh/id_rsaConectar nuestro repositorio local a la ssh:
git remote set-url origin <URL llave ssh GitHub>Crear alias o atajos de comandos
alias <nombre alias>="<comando git>"Eliminar una alias:
unalias <nombre alias>Agregar un tag, el nombre puede ser(v1.0), el PID puede ser de solo 6 dígitos:
git tag -a <nombre tag> -m "<descripcion>" <PID commit>Ver tags:
git taggit show-ref --tagsMandar tags a repositorio remoto:
git push origin --tagsEliminar tag:
git tag -d <nombre tag>
git push origin --tags
git push origin :refs/tags/<nombret tag>Ver ramas con sus cambios
git show-branch
git show-branch --allver todos los cambios del repositorio con una interfaz gráfica:
gitk- Juegos: Codedex