Prefacio

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

Git es un sistema de control de versiones gratuito, de código abierto y distribuido creado por Linus Torvalds. Git requiere una baja sobrecarga operativa, pero es lo suficientemente flexible y potente como para soportar las demandas de proyectos de desarrollo de software complejos, distribuidos y a gran escala.

Nuestro objetivo en este libro es mostrarte cómo sacar el máximo partido a Git y cómo gestionar un repositorio Git con facilidad. Al final, habrás aprendido la filosofía de Git, los conceptos fundamentales y habilidades intermedias y avanzadas para hacer un seguimiento del contenido, colaborar y gestionar tus proyectos entre equipos.

A quién va dirigido este libro

Hemos escrito este libro pensando principalmente en los ingenieros de software (desarrolladores, ingenieros de infraestructuras, DevOps, etc.). Como tal, la mayoría de los conceptos y ejemplos que utilizamos están relacionados con las rutinas y tareas diarias de la gente del sector del desarrollo de software. Sin embargo, Git es lo suficientemente robusto como para seguir contenidos en áreas tan variadas como la ciencia de datos, el diseño gráfico y la autoría de libros, por nombrar sólo algunas. (Un ejemplo: ¡usamos Git como sistema de versiones subyacente para realizar un seguimiento de las revisiones y ediciones mientras escribíamos este libro!) Independientemente de tu título o nivel de competencia, si utilizas Git como sistema de control de versiones, encontrarás valor en estas páginas.

Conocimientos esenciales

La experiencia previa con cualquier sistema de control de versiones, sus objetivos y sus metas será una base útil para comprender cómo funciona Git y para ampliar tus conocimientos a medida que leas este libro. Deberías tener cierta familiaridad con el uso de cualquier herramienta de línea de comandos, como la shell de Unix, junto con conocimientos básicos de los comandos de la shell, porque utilizamos muchas instrucciones de línea de comandos en los ejemplos y discusiones del libro. Una comprensión general de los conceptos de programación también es una ventaja.

Hemos desarrollado los ejemplos en los entornos macOS y Ubuntu. Los ejemplos deberían funcionar en otras plataformas como Debian, Solaris y Windows (utilizando herramientas de línea de comandos instaladas en Git, como Git para Windows), pero puedes esperar ligeras variaciones.

Algunos ejercicios de los ejemplos pueden requerir operaciones a nivel de sistema que necesiten acceso root en las máquinas. Naturalmente, en tales situaciones debes tener una comprensión clara de las responsabilidades de las operaciones que necesitan acceso de root.

Nuevo en esta revisión

En esta tercera edición, adoptamos un enfoque totalmente nuevo y modular de los temas, desglosando los conceptos de Git. Comenzamos introduciéndote en los conceptos básicos y la filosofía fundamental de Git, para luego desarrollar gradualmente comandos intermedios que te ayuden a complementar eficazmente tu flujo de trabajo de desarrollo diario, y finalmente concluir con comandos y conceptos avanzados de git que te ayuden a ser competente en la comprensión de la mecánica interna de cómo funciona Git bajo el capó.

Otro cambio que hemos introducido en esta edición ha sido añadir más ilustraciones para explicar conceptos complejos de Git, a fin de ofrecerte un modelo mental que facilite su comprensión. También destacamos funciones de la última versión de Git y te proporcionamos ejemplos y consejos que pueden ayudarte a mejorar tu actual flujo de trabajo de desarrollo distribuido.

Navegar por el Libro

Hemos organizado esta edición en categorías según la familiaridad y experiencia del lector con Git. Aunque hemos clasificado las secciones de modo que sean progresivamente más avanzadas para que aumentes tu competencia con Git, hemos diseñado los capítulos dentro de cada sección de modo que puedas aprovechar el contenido como temas independientes o como una serie de temas que se desarrollan secuencialmente.

Nos hemos esforzado por aplicar una estructura coherente y un enfoque consistente a la enseñanza de conceptos en cada capítulo. Te animamos a que te tomes un momento para interiorizar este formato. Esto te ayudará a aprovechar y navegar por el libro como una referencia práctica en cualquier momento futuro.

Si has cogido el libro mientras hacías malabarismos con otras responsabilidades y te preguntas cuál sería el mejor orden para ponerte manos a la obra, no te preocupes. La Tabla P-1 te guiará hacia los capítulos que creemos que te ayudarán a adquirir más conocimientos en menos tiempo.

Tabla P-1. Matriz de categorías
Pensar en Git Fundamentos de Git Habilidades intermedias Habilidades avanzadas Trucos y consejos

Ingeniería de software

x

x

x

x

x

Científico de datos

x

x

x

x

Diseñadores gráficos

x

x

x

Academia

x

x

x

Autores del contenido

x

x

x

Instalar Git

Para reforzar las lecciones impartidas en el libro, te animamos encarecidamente a que practiques los fragmentos de código de ejemplo en tu máquina de desarrollo. Para seguir los ejemplos, necesitarás tener instalado Git en la plataforma que elijas. Dado que los pasos para instalar Git varían según la versión de tu sistema operativo, hemos proporcionado instrucciones sobre cómo instalar Git en el Apéndice B según corresponda.

Nota sobre el lenguaje inclusivo

Otro punto importante que nos gustaría destacar sobre los ejemplos es que nos sentimos muy comprometidos con la diversidad y la inclusión en la tecnología, y la sensibilización es una responsabilidad que nos tomamos en serio. Para empezar, utilizaremos la palabra main para indicar el nombre por defecto de la rama.

Omisiones

Debido a su activa base comunitaria, Git evoluciona constantemente. Incluso mientras escribimos esta edición, se ha publicado otra nueva versión de Git para uso comercial: la versión 2.37.1, para ser exactos. No era nuestra intención omitir información en este libro; es simplemente la realidad inevitable cuando se escribe sobre una tecnología en constante cambio.

Hemos optado deliberadamente por no cubrir todos los comandos y opciones principales de Git para poder centrarnos en los comandos comunes y de uso frecuente. Tampoco cubrimos todas las herramientas disponibles relacionadas con Git, simplemente porque hay demasiadas.

A pesar de estas omisiones, confiamos en que este libro te proporcione una base sólida y te prepare para sumergirte más profundamente en los dominios de Git si surge la necesidad. Para obtener una lista detallada de los cambios de la versión, puedes consultar la documentación de las Notas de la versión de Git.

Convenciones utilizadas en este libro

En este libro se utilizan las siguientes convenciones tipográficas:

Cursiva

Indica nuevos términos, URL, direcciones de correo electrónico, nombres de archivo y extensiones de archivo.

Constant width

Se utiliza en los listados de programas, así como dentro de los párrafos, para referirse a elementos del programa como nombres de variables o funciones, bases de datos, tipos de datos, variables de entorno, sentencias y palabras clave.

Constant width bold

Muestra comandos u otros textos que deben ser tecleados literalmente por el usuario.

Constant width italic

Muestra el texto que debe sustituirse por valores proporcionados por el usuario o por valores determinados por el contexto.

Consejo

Este icono significa una pista útil o un consejo.

Advertencia

Este icono indica una advertencia o precaución.

Nota

Este icono indica una nota general.

Además, debes estar familiarizado con los comandos básicos del shell para manipular archivos y directorios. Muchos ejemplos contendrán comandos como éstos para añadir o eliminar directorios, copiar archivos o crear archivos sencillos:

# Command to create a new directory
$ mkdir newdirectory


# Command to write content into a file
$ echo "Test line" > file.txt

# Command to append content at the end of a file
$ echo "Another line" >> file.txt

# Command to make a copy of a file
$ cp file.txt copy-of-file.txt


# Command to remove a file
$ rm newdirectory/file

# Command to remove a file
$ rmdir newdirectory

Los comandos, los permisos de root y los comandos que deben ejecutarse con permisos de root aparecen como una operación sudo:

# Install the Git core package
$ sudo apt-get install git-core

La forma de editar archivos o realizar cambios en tu directorio de trabajo depende en gran medida de ti. Deberías estar familiarizado con un editor de texto. En este libro, denotaremos el proceso de edición de un archivo mediante un comentario directo o un pseudocomando:

# edit file.c to have some new text
$ edit file.c

Aprendizaje en línea O'Reilly

Nota

Durante más de 40 años, O'Reilly Media ha proporcionado formación tecnológica y empresarial, conocimientos y perspectivas para ayudar a las empresas a alcanzar el éxito.

Nuestra red única de expertos e innovadores comparten sus conocimientos y experiencia a través de libros, artículos y nuestra plataforma de aprendizaje online. La plataforma de aprendizaje en línea de O'Reilly te ofrece acceso bajo demanda a cursos de formación en directo, rutas de aprendizaje en profundidad, entornos de codificación interactivos y una amplia colección de textos y vídeos de O'Reilly y de más de 200 editoriales. Para más información, visita https://oreilly.com.

Cómo contactar con nosotros

Dirige tus comentarios y preguntas sobre este libro a la editorial:

  • O'Reilly Media, Inc.
  • 1005 Gravenstein Highway Norte
  • Sebastopol, CA 95472
  • 800-998-9938 (en Estados Unidos o Canadá)
  • 707-829-0515 (internacional o local)
  • 707-829-0104 (fax)

Tenemos una página web para este libro, donde se enumeran erratas, ejemplos y cualquier información adicional. Puedes acceder a esta página en https://oreil.ly/VCG3e.

Envía un correo electrónico para comentar o hacer preguntas técnicas sobre este libro.

Para noticias e información sobre nuestros libros y cursos, visita https://oreilly.com.

Encuéntranos en LinkedIn: https://linkedin.com/company/oreilly-media.

Síguenos en Twitter: https://twitter.com/oreillymedia.

Míranos en YouTube: https://youtube.com/oreillymedia.

Agradecimientos

La suma colectiva del conocimiento de muchos supera la suma de uno. En vista de ello, este proyecto es posible gracias a la ayuda de muchas personas. Personalmente, le debo un enorme agradecimiento a Matthew McCullough, que me brindó la oportunidad de seguir enseñando al mundo Git y GitHub en esta edición del libro. También doy las gracias a Jon Loeliger, el autor principal del libro, cuyo trabajo proporcionó una gran referencia para profundizar en los conocimientos sobre Git en ediciones anteriores del libro.

Me gustaría dar las gracias a mis revisores técnicos, Jeff King, Jess Males, Aaron Sumner, Donald Ellis y Mislav Marohnić, que tuvieron que leer los escritos en bruto del libro y proporcionaron inmensos comentarios para garantizar que los capítulos tomaran forma de forma comprensible para todos.

También me gustaría dar las gracias a Taylor Blau, que me proporcionó orientación temprana y valiosos comentarios en los primeros capítulos del libro, que me ayudaron a enfocar la estructura general de las partes posteriores del libro. Lars Schneider desarrolló la idea y el concepto de la sección "Git LFS", que se basó en una charla que preparó; por ello, le estoy profundamente agradecido. Los trabajos de Elijah Newren, Derrick Stolee y Vincent Driessen se citan con permiso, y agradezco su contribución. También quiero dar las gracias a Peter Murray; nuestras conversaciones sobre la estructura del libro me proporcionaron la seguridad y la orientación de que iba por buen camino con los cambios introducidos para esta tercera edición.

A mis editores y al personal de O'Reilly -especialmente a Shira Evans, Virginia Wilson, Beth Kelly, Audrey Doyle, Kim Sandoval, Sue Klefstad, David Futato, Karen Montgomery, Kate Dullea, Suzanne Huston y Melissa Duffield- les doy las gracias de todo corazón por su paciencia, motivación y ánimo para que pudiéramos cruzar la línea de meta.

Por último, quiero dar las gracias a mi mujer, Tejirl, y a mi hija, Temyksciraa, por proporcionarme apoyo moral incondicional y paciencia; por sacrificar las cenas familiares, las noches de cita y las vacaciones; y, sobre todo, por creer en mí. Gracias también a mis padres, Ponuthorai y Jayaletchmy, que me enseñaron perseverancia. Y un agradecimiento especial a Raksha, mi dulce pastor suizo blanco, que esperó pacientemente a mi lado durante todo el proceso de escritura.

Atribuciones

La Política de Marcas de Git está disponible en Internet.

Linux® es una marca registrada de Linus Torvalds en Estados Unidos y otros países.

PowerPC® es una marca comercial de International Business Machines Corporation en Estados Unidos, en otros países o en ambos.

Unix® es una marca registrada de The Open Group en Estados Unidos y otros países.

Get Control de versiones con Git, 3ª edición now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.