Guía del comando Rsync
Tutorial cURL – Petición web GET a una API

Comandos de git

Comandos de git

GIT es el SCV (sistema de control de versiones) de código abierto más utilizado diseñado por Linus Torvalds. Su propósito es llevar registro de los cambios en archivos de computadora. A diferencia de Subversion, GIT es distribuido, con lo que permite la coordinación del trabajo entre varias personas sobre archivos compartidos en un repositorio de código. Las empresas y los programadores suelen utilizar el GIT para colaborar en el desarrollo de software y aplicaciones.

Índice:

Secciones GIT

Un proyecto GIT, consta de tres secciones principales:

  • Directorio de trabajo (Working dir) – donde se agregan, borran y editan los archivos.
  • Área de preparación (INDEX. Staging area) – donde se preparan (Indexan) los cambios.
  • Directorio git (HEAD. local repo) – donde se confirman los cambios efectuados dejando un mensaje en el registro.

Desde el directorio GIT se subirá a la forja de repositorios (Remote repo) que se haya elegido.

ciclos de trabajo Git

GIT está disponible para Linux, Windows, Mac y Solaris. El software puede tener una fuerte curva de aprendizaje, pero es esencial para cualquier proyecto que requiera documentación de un equipo de trabajo.

Instalar git en ubuntu

Comandos de GIT básicos

Comandos básicos de GIT que debes conocer:

git init

Ccreará un nuevo repositorio local GIT. El siguiente comando de Git creará un repositorio en el directorio actual:

git init

Como alternativa, puedes crear un repositorio dentro de un nuevo directorio especificando el nombre del proyecto:

git init [nombre del proyecto]

git clone

Se usa para copiar un repositorio. Si el repositorio está en un servidor remoto, usa:

git clone nombredeusuario@host:/path/to/repository

A la inversa, ejecuta el siguiente comando básico para copiar un repositorio local:

git clone /path/to/repository

git add

Se usa para agregar archivos al área de preparación. Por ejemplo, el siguiente comando de Git básico indexará el archivo temp.txt:

git add <temp.txt>

git commit

Creará una instantánea de los cambios y la guardará en el directorio git.

git commit –m “Mensaje ejemplo que quedará en el registro del commit”

Ten en cuenta que los cambios confirmados no llegarán al repositorio remoto.

git config

Puede ser usado para establecer una configuración específica de usuario, como el email, nombre de usuario y tipo de formato, etc. Por ejemplo, el siguiente comando se usa para establecer un email:

git config --global user.email tuemail@ejemplo.com

La opción -global le dice a GIT que vas a usar ese correo electrónico para todos los repositorios locales. Si quieres utilizar diferentes correos electrónicos para diferentes repositorios, usa el siguiente comando:

git config --local user.email tuemail@ejemplo.com

git status

Muestra la lista de los archivos que se han cambiado junto con los archivos que están por ser preparados o confirmados.

git status

git push

Se usa para enviar confirmaciones locales a la rama maestra del repositorio remoto. Aquí está la estructura básica del código:

git push  origin <master>

Reemplaza <master> con la rama en la que quieres enviar los cambios cuando no quieras enviarlos a la rama maestra.

git checkout

Crea ramas y te ayuda a navegar entre ellas. Por ejemplo, el siguiente comando crea una nueva y automáticamente se cambia a ella:

command git checkout -b <branch-name>

Para cambiar de una rama a otra, sólo usa:

git checkout <branch-name>

git remote

Permite ver todos los repositorios remotos. El siguiente comando listará todas las conexiones junto con sus URLs:

git remote -v

Para conectar el repositorio local a un servidor remoto, usa este comando:

git remote add origin <URL-host-or-remote>

Por otro lado, el siguiente comando borrará una conexión a un repositorio remoto especificado:

git remote <nombre-del-repositorio>

git branch

se usa para listar, crear o borrar ramas. Por ejemplo, si quieres listar todas las ramas presentes en el repositorio, el comando debería verse así:

git branch

Si quieres borrar una rama, usa:

 git branch -d <branch-name>

git pull

Fusiona todos los cambios que se han hecho en el repositorio remoto con el directorio de trabajo local.

git pull

git merge

Se usa para fusionar una rama con otra rama activa:

git merge <branch-name>

git diff

Se usa para hacer una lista de conflictos. Para poder ver conflictos con respecto al archivo base, usa:

git diff --base <file-name>

El siguiente comando se usa para ver los conflictos que hay entre ramas antes de fusionarlas:

git diff <source-branch> <target-branch>

Para ver una lista de todos los conflictos presentes usa:

git diff

git tag

Marca commits específicos. Los desarrolladores lo usan para marcar puntos de lanzamiento como v1.0 y v2.0.

git tag 1.0 <instert-commitID-here>

git log

se usa para ver el historial del repositorio listando ciertos detalles de la confirmación. Al ejecutar el comando se obtiene una salida como ésta:

commit 1a23b2r45b3f8344caasdar1e4be15646e21dfas
Author: manudocker <noreply@vergaracarmona.es>
Date:   Mon Sep 5 10:51:09 2022 -0600

git reset

sirve para resetear el index y el directorio de trabajo al último estado de confirmación.

git reset - -hard HEAD

git rm

Se puede usar para remover archivos del index y del directorio de trabajo.

git rm archivo.txt

git stash

Guardará momentáneamente los cambios que no están listos para ser confirmados. De esta manera, pudes volver al proyecto más tarde.

git stash

git show

Se usa para mostrar información sobre cualquier objeto git.

git show

git fetch

Permite al usuario buscar todos los objetos de un repositorio remoto que actualmente no se encuentran en el directorio de trabajo local.

git fetch origin

git ls-tree

Permite ver un objeto de árbol junto con el nombre y modo de cada ítem, y el valor blob de SHA-1. Si quieres ver el HEAD, usa:

git ls-tree HEAD

git cat-file

Se usa para ver la información de tipo y tamaño de un objeto del repositorio. Usa la opción -p junto con el valor SHA-1 del objeto para ver la información de un objeto específico, por ejemplo:

git cat-file –p 1a23b2r45b3f8344caasdar1e4be15646e21dfas

git grep

Permite al usuario buscar frases y palabras específicas en los árboles de confirmación, el directorio de trabajo y en el área de preparación. Para buscar por «vergaracarmona» en todos los archivos, usa:

git grep “vergaracarmona”

gitk

Muestra la interfaz gráfica para un repositorio local. Simplemente ejecuta:

gitk

git instaweb

Permite explorar tu repositorio local en la interfaz GitWeb. Por ejemplo:

git instaweb –http=webrick

git gc

Limpiará archivos innecesarios y optimizará el repositorio local.

git gc

git archive

Permite al usuario crear archivos zip o tar que contengan los constituyentes de un solo árbol de repositorio. Por ejemplo:

git archive - -format=tar master

git prune

Elimina los objetos que no tengan ningún apuntador entrante.

git prune

git fsck

Realiza una comprobación de integridad del sistema de archivos git e identifica cualquier objeto corrupto

git fsck

git rebase

Se usa para aplicar ciertos cambios de una rama en otra. Por ejemplo:

git rebase master

Ejemplo de ramificación

En la siguiente figura se puede ver el flujo de trabajo con Git en un ejemplo de desarrollo (GammaLib). Las ramas permanentes se muestran como líneas negras, las ramas temporales como líneas grises. El área amarilla es el repositorio de GammaLib, el área azul claro es su espacio de usuario bifurcado. Hay tres ramas permanentes en el repositorio de GammaLib:

  • la rama master que contiene la última versión
    la rama devel que es el tronco sobre el que progresa el desarrollo
    la rama de integración que se utiliza para la integración del código

Una rama de lanzamiento temporal se utiliza para las correcciones y, en general, para las pruebas de código antes de cualquier lanzamiento. El desarrollador trabajará en su espacio de usuario y en las ramas de características temporales.

ramificación git

Trucos

1. Cuando pones mal un comando en Git te suele sugerir el correcto. Puedes hacer que se ejecute automáticamente configurando el tiempo de autocorreción:

git config --global help.autocorrect 1

2. Volver a la rama anterior rápidamente usando:

git switch -

Si no tienes ‘git switch’, puedes usar ‘git checkout’.

3. El git log por defecto no ofrece una información visual. Con unas pocas opciones puedes conseguir colores, ramificaciones y más información.

git log --pretty=oneline --graph --decorate --all

A mi me gusta usarlo con estas opciones:

git log --pretty=format:"%C(yellow)%h%Cred%d%Creset  -  %C(cyan)%an%Creset:  '%s'    %Cgreen(%cr)%Creset"

Y para no tener que acordarme del comando lo tengo definido con un alias (gglog) en mi archivo zshrc.

4. Si no quieres pasar por la fase de staging de Git, si añades el parámetro -a al commit, te saltas la necesidad de ejecutar «git add» sobre esos ficheros.

⚠️ Ojo, que no funciona si el archivo es nuevo. Sólo archivos modificados.

5. Se puede usar alias en Git, crea aliases de dos letras de los comandos más usados. Por ejemplo, para git commit:

git config --global alias․co commit

Ahora podrás usar:

git co

6. Push a múltiples remotos a la vez

Primero configura el repositorio remoto como lo tendrías normalmente, con push y fetch

git remote add origin git@github.com:[username]/[repository]

Puedes confirmar esta configuración listando los remotos configurados

git remote -v

Ahora configura las multiples URLs remotas incluyendo la que acabas de añadir.

git remote set-url --add --push origin git@github.com:[username]/[repository]
git remote set-url --add --push origin git@bitbucket.org:[username]/[repository]

Y si confirmas de nuevo con git remote -v podrás ver configuradas ambas URLs como push más la primera como fetch.

origin	git@github.com:[username]/[repository] (fetch)
origin	git@github.com:[username]/[repository] (push)
origin	git@bitbucket.org:[username]/[repository] (push)

Conclusión

Esta guía puede servir para encontrar fácilmente algún comando git pero también para realizar prácticas.

Si queréis ver más comandos podéis revisar:

Más apuntes

Invítame a un café con bitcoins:
1QESjZDPxWtZ9sj3v5tvgfFn3ks13AxWVZ

Bitcoins para café
También puedes invitarme a algo para mojar...

2 comentarios. Dejar nuevo

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Rellena este campo
Rellena este campo
Por favor, introduce una dirección de correo electrónico válida.
Tienes que aprobar los términos para continuar