Administre el versionado de su archivo como un programador con Git

  • Edmund Richardson
  • 0
  • 2501
  • 582
Anuncio

Si alguna vez ha trabajado con colegas en un documento, conoce este dolor: alguien da el primer paso (document.doc), luego se lo envía por correo electrónico a todos. La siguiente persona hace lo mismo, al igual que la tercera, cada una de las cuales incluye una revisión (document_rev3.doc) al nombre del archivo. Al gerente le gusta lo que ve y lo etiqueta como completo (document_final.doc) ... hasta que lleguen los cambios de última hora (document_final_Aaron's changes_reviewed_by_Bob_now_really_final.doc).

Ahora imagine cambios como este en docenas de archivos de código fuente. Los programadores crearon sistemas de control de versiones (VCS) para resolver este problema. Son de naturaleza un poco técnica, pero también pueden ser útiles para usuarios avanzados. Echemos un vistazo a los conceptos básicos del control de versiones utilizando el sistema superior hoy, Git.

Descripción general del control de versiones en uso

El propósito principal de los VCS es capturar versiones (también llamado revisiones) de un archivo a lo largo del tiempo. Esto significa no depender de métodos crudos como el descrito anteriormente. En estos sistemas, cuando accede “document.doc” estás trabajando en la versión más reciente de forma predeterminada. Pero también puede volver al historial del archivo y recuperar versiones anteriores. Los sistemas creados específicamente para administrar versiones de archivos comenzaron en el desarrollo de software, pero han llegado a más “corriente principal” aplicaciones también.

La evolución del control de versiones en el desarrollo de software

Las aplicaciones de control de versiones surgieron originalmente como una forma de evitar que los programadores rompieran el código de los demás. Los primeros sistemas simplemente permitieron a los usuarios bloquear archivos de otras ediciones, mientras que los sistemas de segunda generación (como Subversion Cómo controlar las versiones de WordPress usando Subversion [Linux] Cómo controlar las versiones de WordPress usando Subversion [Linux] La mayoría de ustedes probablemente ya saben que WordPress impulsa una gran cantidad de sitios web que vemos todos los días. Con la gran base de usuarios y el soporte, puede hacer muchas cosas interesantes con ...) agregado pago completo del proyecto desde un repositorio central.

Si bien estos sistemas de segunda generación todavía se usan ampliamente, la industria está migrando hacia sistemas de tercera generación. La característica principal de estos sistemas es que son repartido, lo que significa que no hay un depósito central. Por el contrario, cada usuario tiene su propia copia completa del repositorio (incluidas todas las revisiones anteriores). Pero cualquier cambio (incluso las revisiones completas) son “local” hasta que él “empuja” ellos a otro repositorio. Ese usuario puede extraer un clon para hacer cambios y repetir el proceso..

Control de versión actual para no programadores

La capacidad de capturar múltiples versiones de la misma cosa también es una característica común para los usuarios promedio. No solo para codificadores: sistemas de control de versiones superiores para escritores No solo para codificadores: sistemas de control de versiones principales para escritores La mención del control de versiones o el control de revisión hace que Parece algo para geeks. Te sorprenderá saber que los sistemas de control de versiones tienen su lugar no solo en la escritura académica sino también en ... Con acceso a almacenamiento más barato, tanto en la máquina local como a través de servicios en la nube fáciles de usar, los usuarios ahora tienen la capacidad de rastrear el historial de sus archivos. Los programas de propósito general hacen esto de varias maneras.

Sistemas operativos puede capturar un historial de archivos o carpetas La última guía de copia de seguridad de datos de Windows 10 La última guía de copia de seguridad de datos de Windows 10 Hemos resumido todas las opciones de copia de seguridad, restauración, recuperación y reparación que pudimos encontrar en Windows 10. Use nuestros consejos simples y nunca se desespere sobre datos perdidos de nuevo! . Esto puede suceder automáticamente cada vez que se guarda un archivo, o en un horario regular. Algunos aplicaciones de escritorio También le permite capturar versiones o instantáneas de archivos. Por ejemplo, LibreOffice proporciona el “Guardar versión” característica (como se muestra en la imagen superior a continuación) que le permite guardar múltiples versiones del documento en un archivo. Por último, las aplicaciones web / en la nube como Google Drive, ownCloud, etc. también mantendrán las iteraciones anteriores de un archivo o documento (como se muestra para Google Docs en la imagen inferior a continuación), ya sea detrás de escena o bajo su comando express.

¿Por qué utilizar entonces el control de versiones centrado en la programación??

Dado que todas estas opciones a nivel del sistema operativo o de la aplicación ya existen, ¿por qué molestarse con estas herramientas de programación nerd? Hay un par de inconvenientes para los métodos anteriores, que incluyen:

  • Algunos sistemas operativos guardarán todos y cada uno de los ajustes que realice en un archivo en una nueva versión. Tiempo de retroceso: 4 herramientas y consejos para restaurar archivos borrados en Windows Tiempo de retroceso: 4 herramientas y consejos para restaurar archivos borrados en Windows One of Windows ' los mayores defectos podrían ser su rescate, si alguna vez elimina accidentalmente un archivo importante: el sistema de archivos de Windows en realidad no elimina archivos. Hasta que se sobrescriban, los archivos eliminados se pueden restaurar. . Esto no solo ocupará un almacenamiento innecesario, sino que también dificultará la identificación de un punto de restauración particular para un archivo.
  • Estas soluciones también pueden usar un archivo como la unidad básica para administrar. Pero los sistemas de control de versiones generalmente funcionan en el nivel de directorio (incluidos los subdirectorios). Un VCS facilita ver con precisión qué archivo cambió y cuándo.
  • Estas mismas soluciones tampoco le dan la capacidad de etiquetar las iteraciones en la mayoría de los casos. Esto también hace que sea difícil encontrar el archivo con el paso del texto que sobrescribió en algún momento antes de darse cuenta de lo brillante que era.
  • El control de versiones por sistemas operativos y aplicaciones como Word también introduce puntos únicos de falla. Para Word es el archivo en sí (si se corrompe, diga adiós a todas sus copias anteriores también). Para el sistema operativo, es el disco duro Cómo reparar una unidad de disco duro muerta para recuperar datos Cómo reparar una unidad de disco duro muerta para recuperar datos Si su unidad de disco duro ha fallado, esta guía lo ayudará con la reparación y la reparación del disco duro. recuperación de datos. , a menos que sea un usuario responsable y realice una copia de seguridad con regularidad La Guía de copia de seguridad y restauración de Windows La Guía de copia de seguridad y restauración de Windows Los desastres ocurren. A menos que esté dispuesto a perder sus datos, necesita una buena rutina de copia de seguridad de Windows. Le mostraremos cómo preparar copias de seguridad y restaurarlas.. .
  • La naturaleza de los servicios basados ​​en la web significa que sus revisiones anteriores podrían estar disponibles en la nube. Por ejemplo, si intenta ver el historial de un archivo de Dropbox en Linux (como se muestra en la imagen a continuación), será redirigido al sitio web.

Si alguno o todos estos problemas te hacen querer algo más, mira la siguiente sección donde los resolvemos con Git.

Control de versiones con Git

En las siguientes secciones veremos cada uno de estos pasos para un proyecto muy importante: este mismo artículo. Lo haremos utilizando la versión de línea de comandos de Git. Conocer los comandos del terminal facilitará la búsqueda de sus equivalentes de GUI y garantizará que pueda usarlo en todas las plataformas.

1. Configurando el repositorio de Git

Si su máquina no tiene instalado git (las Mac lo hacen, al igual que algunas distribuciones de Linux), puede tomar el instalador de Windows desde la página de descarga del proyecto o instalarlo en Linux con un comando (específico de su distribución) como:

sudo apt install git

Lo siguiente que tenemos que hacer es configurar un git repositorio, que es solo una carpeta que contiene tu proyecto. Para aprovechar las versiones de Git, debe: inicializar la carpeta como repositorio. Puede hacer esto en una línea de comando con el siguiente comando:

git init

Es posible que no vea nada una vez que esto se complete, pero habilite el “mostrar archivos ocultos” opción en su administrador de archivos, y verá que hay una nueva .git carpeta (como se muestra en la imagen de arriba). Aquí es donde git mantiene toda su información para que esté fuera de tu camino.

2. Agregue y confirme su primer archivo

El siguiente paso es crear algunos contenidos (archivos) en su proyecto. Estos pueden ser cualquier tipo de archivo, ya que la mayoría de los proyectos de programación están formados por código (texto) y recursos como gráficos (binarios) Todo lo que necesita saber sobre los formatos de archivo y sus propiedades Todo lo que necesita saber sobre los formatos de archivo y sus propiedades Nosotros use el archivo de palabra indistintamente: música, imagen, hoja de cálculo, presentación de diapositivas, etc. Pero, de todos modos, ¿qué hace que un archivo sea un "archivo"? Probemos y comprendamos esta parte fundamental de la informática. . Una vez creado, haga lo siguiente en la línea de comando mientras todavía está en el directorio de su proyecto:

estado git

El primer paso para un commit es “escenario” Los artículos nuevos o actualizados. Vea cómo la salida anterior le permite saber que hay “sin escena” cambios? Puede organizar todo en su directorio (recursivamente, es decir, incluir subcarpetas y sus archivos) con este comando:

git -a .

los “-una” la bandera es para “añadir,” y el período se refiere al directorio actual. Básicamente dice “agregar todos los archivos a mi confirmación.” Ahora para realizar la confirmación, escriba lo siguiente:

git commit -m "WHOOP, mi primer commit!"

Ahora, cuando verifique el estado nuevamente, no debería haber cambios en espera. Para ver el commit en sí, verifique el registro de git, usando modo gráfico, con listado cortado a una línea, y decorado para legibilidad:

git log --all --decorate --oneline --graph

Esto le mostrará una buena línea de tiempo de su compromiso, con el más reciente en la parte superior.

3. Crear una rama para experimentar

Mientras trabaja, es posible que desee ir en una dirección particular, sin saber si va a funcionar. Para esto, querrás crear una rama con el siguiente comando:

git branch experiment1 git checkout experiment1

El segundo comando te cambia al “Experimento 1” rama. Puede volver a cambiar reemplazándolo por “dominar.” Cuando comience a trabajar en su texto, observe la diferencia entre mismo archivo de cada rama Primero el “Experimento 1” bifurca con tu nuevo texto:

Compare esto con el original:

Ahora, después de trabajar durante un tiempo (que termina con una nueva confirmación), lo mejor que se te ocurre es “Lorem ipsum dolor sentarse amet ... ?” ¿Que es eso? No tiene sentido, y debe ser eliminado de su proyecto de inmediato. Puede tirar basura a su rama con el siguiente comando (“-re” para forzar eliminación):

git branch -D experiment1

Ahora comience otra rama y agregue algo inteligente, junto con algunas imágenes:

git branch experiment2 git checkout experiment2 git add. git commit -m "Más texto, imágenes agregadas"

4. Combina tus cambios

Finalmente, una vez que esté satisfecho con los cambios en su rama actual, el siguiente comando los combinará con el “dominar” rama. Siempre que no haya estado haciendo muchos saltos entre los dos, esto dará como resultado que se apliquen todos sus nuevos cambios y se cree una nueva revisión. Lo siguiente en la línea de comandos los combinará por usted:

git merge experiment2

Ahora tendrá una revisión que combina lo último en “dominar” con lo último en “experimento2.” En este punto, puede deshacerse del experimento (después de todo fue exitoso) con lo siguiente:

git branch -d experiment2

Tenga en cuenta que solo perderá cualquiera de los cambios incrementales que realizó dentro de esa rama si lo hace.

5. Empuje a un lugar seguro

Por último, Git es un repartido sistema, lo que significa que puede tener múltiples copias de su repositorio y sincronizarlas. Por ejemplo, cree un nuevo repositorio en un servidor en el que pueda usar SSH Cómo administrar remotamente un servidor Linux con SSH Cómo administrar remotamente un servidor Linux con SSH SSH es muy funcional, por eso es un recurso para la administración remota de servidores. Aprenda a administrar de forma remota un servidor Linux a través de SSH, desde la conexión hasta la instalación del software y las transferencias de archivos. con este comando:

git init --bare

los “-desnudo” flag lo configura como una especie de repositorio de solo lectura, ya que no puede modificar los archivos directamente. Luego puede configurarlo como una copia remota de su repositorio local con lo siguiente (el primer comando asegura que se creen nuevas sucursales locales de forma remota):

git config push.default match git remote add central ssh: // [username] @ [URL] / path / to / repository git push --set-upstream up master central

Configurar para versiones y copia de seguridad con Git

Con la configuración anterior, puede seguir un proceso simple para mantener todo el trabajo que realiza en un proyecto no solo versionado, sino también respaldado.

  1. Realizar cambios en los archivos del proyecto.
  2. Problema “git add .” para agregar todos los cambios a una confirmación.
  3. Problema “git commit -m [algún mensaje]” para comprometer los cambios a su local repositorio. Repita desde el principio.
  4. Problema “git push” para confirmar los cambios en un repositorio remoto a intervalos regulares.
  5. Problema “git clone ssh: // [nombre de usuario] @ [URL] / ruta / al / repositorio” de alguna otra máquina a

¿Los beneficios de los sistemas de control de versiones le interesan? ¿O son las aplicaciones de respaldo que no son de desarrollo suficientes para sus necesidades? Háganos saber sus pensamientos en los comentarios a continuación!




Nadie ha comentado sobre este artículo todavía.

Sobre tecnología moderna, simple y asequible.
Tu guía en el mundo de la tecnología moderna. Aprenda a usar las tecnologías y los dispositivos que nos rodean todos los días y aprenda a descubrir cosas interesantes en Internet.