A menos que sea una tienda web de una sola persona sin un equipo con el que colaborar, ha experimentado la frustración que acompaña al uso compartido de archivos. No importa cuánto lo intentes, cuando varias personas trabajan en un solo proyecto sin un sistema de control de versiones, las cosas se vuelven caóticas .

Si trabaja con desarrolladores en la compilación y la implementación de sitios web, la combinación entre las plantillas de aplicaciones para el usuario y la funcionalidad de servicios de fondo puede ser un temible agujero negro.

Cuestiones como sobreescribir, archivos perdidos y el muy común fenómeno de "trabajar con una versión anterior" surgen constantemente . Y una vez que la funcionalidad del back-end ha sido incorporada en sus plantillas, se aterroriza al tocarlas por temor a romper algo que un desarrollador tardó mucho tiempo en ponerse a trabajar.

Además, incluso si tiene un repositorio común que todo el mundo está sacando de las probabilidades, al menos un miembro de su equipo se olvidó de tomar los últimos archivos y está a punto de hacer estallar las cosas con sus últimas incorporaciones.

En este artículo, le daré una revisión rápida de Git, un excelente sistema de control de versiones .

Control de versiones: una explicación rápida y sucia

Control de versiones (también conocido como Control de revisiones o Gestión de control de fuentes ) es una gran manera de resolver el problema de uso compartido de archivos.

El concepto básico es este: hay un repositorio principal para todos los archivos del proyecto . Los miembros del equipo verifican los archivos, hacen cambios y luego los revisan (o los comprometen ). El Sistema de control de versiones (VCS) señala automáticamente quién cambió los archivos, cuándo se cambiaron y qué sobre ellos era nuevo o diferente.

También le pide que escriba una pequeña nota sobre el cambio para que todos en el proyecto sepan de un vistazo qué hizo y por qué. Cada archivo tendrá un historial de revisión para que pueda volver fácilmente a una versión anterior de cualquier archivo si algo sale mal.

Un buen VCS también le permite fusionar los cambios en el mismo archivo . Si usted y otra persona trabajan localmente en el mismo archivo al mismo tiempo, al volver a insertar estos archivos en el repositorio principal, el sistema fusionará ambos conjuntos de cambios para crear un archivo nuevo y completamente actualizado. Si surgen conflictos durante la fusión, los resaltará por usted.

Probablemente estés usando un VCS muy crudo ahora mismo para mantener tus archivos correctos. Si eres diseñador, se ve así:

dpcwqxg_312gvhkh4s6_b

Control de versión del diseñador - FAIL

Esto funciona lo suficientemente bien para PSD y otros archivos binarios grandes, que realmente no se prestan a VCS. Pero hay una forma mucho mejor de hacerlo cuando administra el código fuente de un sitio web.

Las ventajas de usar un sistema de control de versiones incluyen:

  • Los archivos no se pueden sobrescribir
  • Hay un repositorio común que contiene todos los archivos más recientes
  • Las personas pueden trabajar en los mismos archivos simultáneamente sin conflicto
  • Le permite volver a una versión anterior del archivo / proyecto si es necesario
  • Haciendo a tus desarrolladores muy felices

Incluso si no trabajas con un equipo, el control de versiones puede ser un salvavidas . Copia de seguridad de archivos es una de las cosas más fáciles que puede hacer para evitar perder trabajo o tener que comenzar de nuevo.

La idea de un VCS parece desalentadora al principio, especialmente porque la mayoría de la documentación está escrita por y para desarrolladores . Pero una vez que hagas el cambio para incorporarlo a tu flujo de trabajo, verás que no es tan difícil como parece.

dpcwqxg_322grqgzjcz_b

Conoce a Git

OK, ahora puedes ver por qué un sistema de control de versiones es imprescindible para tu equipo web. Si haces un poco de Google, verás que hay bastantes opciones, incluidas SVN, Mercurial, CVS, Bazaar y Git. Cualquiera de ellos podría ser una buena solución para sus necesidades, y lo aliento a que investigue un poco antes de seleccionar un VCS. En este artículo, me centraré en Git , el que uso a diario. Es una "estrella en ascenso" que ha ganado popularidad gracias a una gran base de fans de Linux, GitHub y el Carriles comunidad.

Git es un sistema de control de versiones de código abierto creado originalmente por Linus Torvalds para el desarrollo kernal de Linux. Linus es un tipo muy inteligente; cuando se propone resolver un problema, no se equivoca. Uno de los grandes diferenciadores de Git es que, a diferencia de SVN y CVS, es un sistema de control de versiones distribuidas . Esto significa que cada usuario tiene una copia completa de los datos del repositorio almacenados localmente en su máquina. ¿Qué tiene de bueno eso? Unas pocas cosas:

    • Todo es local , por lo que puedes trabajar sin conexión
    • No hay un solo punto de falla . No depende de un servidor central que pueda colapsar y quemar, llevándose consigo el único repositorio para su proyecto.
    • Como no tiene que comunicarse constantemente con un servidor central, los procesos se ejecutan mucho más rápido

      Git tiene una curva de aprendizaje un poco más difícil que SVN , pero la compensación vale la pena. ¡Solo piense en lo impresionado que estarán sus amigos desarrolladores cuando les diga que está usando el nuevo calor que es Git! Con toda seriedad, no creo que la curva de aprendizaje sea tan pronunciada. SVN fue igualmente confuso para mí al principio, y me encontré con más problemas cotidianos al usarlo.

      Instalar Git no es divertido y juegos. Tuve la suerte de contar con un desarrollador bien informado dispuesto a ayudar, pero hay muchos recursos en línea para ayudarlo a superarlo. Se ejecutará en una PC, Mac o Linux, aunque la instalación para Linux y OSX es considerablemente más fácil que para Windows.

      Puede descargar la última versión de Git aquí Una vez que tenga los archivos, intente esto guía rápida para que comiences con el proceso de instalación. Para usuarios de Windows, esto paso a paso guía visual debería ser útil. Usuarios de Mac, prueba esta guía encontrada en GitHub

      Empezando

      Una vez que haya instalado Git, puede crear su repositorio . Para convertir una carpeta existente en un repositorio de Git, use los siguientes comandos en la ventana Terminal o Símbolo del sistema:

      cd path/to/projectgit initgit add .git commit

      Lo que le estás diciendo a Git es:

      • Inicializa este directorio
      • Agregue todo en él : todos los archivos y subdirectorios
      • Confirmar o almacenar , todos los cambios actuales en el repositorio

      Si odias la línea de comando, también puedes hacerlo usando la GUI de Git . No es la cosa más bonita que hayas visto, pero está ahí si la necesitas.

      Una captura de pantalla de la GUI de Git

      Un flujo de trabajo de ejemplo Git

      Actualmente estoy usando Git en una Mac para trabajar en una aplicación web con múltiples desarrolladores web. Tenemos una versión "maestra" del código al que enviamos nuestros archivos, y cada uno ejecuta una copia completa localmente. En un día cualquiera, mi flujo de trabajo es más o menos así:

      dpcwqxg_323gnhgbwg3_b

      1. Fire Up Terminal . Inicie mi base de datos local mysql (para que la aplicación que estamos construyendo pueda ejecutarse localmente en mi máquina).
      2. Use Terminal para ver los últimos cambios usando el comando "git pull" . Esto me da todos los cambios realizados por otros miembros del equipo y me registré en nuestro repositorio principal.
      3. Abra el proyecto en TextMate y realice mis cambios.
      4. Confirmar cambios y agregar mis notas . Esto solo los compromete localmente. Me comprometo con frecuencia, probablemente diez o más veces al día. Esto me ayuda a mantener el rumbo.
      5. Empuje mis cambios al repositorio principal usando "git push" . Ahora otros miembros del equipo pueden verificar y ver mis cambios. Debe hacer esto al menos una vez al día o después de cualquier adición importante.

      Todas estas acciones se pueden hacer fácilmente a través de la ventana del Terminal , pero soy un tipo visual de chica. Por esa razón, yo uso GitX , una guía de Git para OSX , para hacer mis compromisos. Sigo presionando y tirando de Terminal, pero GitX me facilita organizar mis compromisos y entender lo que estoy haciendo.

      Captura de pantalla de GitX
      En la parte superior, resalta qué cambio se realizó en los archivos. En la esquina inferior izquierda está su lista de Cambios no registrados . Para confirmarlos, arrastre uno o más archivos al área "Cambios por etapas" a la derecha, escriba su mensaje de confirmación y presione el botón Confirmar.

      Si cambio a la vista de árbol, puedo ver lo que se ha enviado al repositorio. Si mis archivos no estaban actualizados con los archivos maestros, las etiquetas verdes y azules en la parte superior no estarían sincronizados. GitNub ofrece una interfaz similar al Mac.

      Captura de pantalla de GitX
      También hay un gran Paquete de TextMate disponible. Con él, puede presionar, tirar, comprometer y más sin salir de TextMate. Es extremadamente eficiente.

      TextMate con Git Bundle instalado

      Aprende más

      Hoja de trucos de Git

      Git Cheat Sheet por Zack Rusin

      Encima: Hoja de Cheques Git de Zack Rusin

      Todavía soy un novato en Git, así que solo he arañado la superficie en cuanto a lo que puedes hacer con él, pero definitivamente he visto la luz en lo que respecta al control de versiones, y estoy contento de haber finalmente subido al carro.

      Para obtener más información sobre el uso de Git, consulte estos excelentes recursos:

      Intros a Git

      Conociendo a Git
      Entrada de Wikipedia en Git
      Por qué Git es mejor que X
      La charla TED de Linus Torvald en Git
      Un recorrido por Git: Lo básico
      Git Ready

      Cheat Sheets / Tips

      37 Signals Git Resources
      Git para los perezosos
      El manual de usuario de Git
      Una manada de consejos Git
      Hoja de trucos de GitHub's Git
      Git Magic

      Intros para control de versiones

      Control de versiones para diseñadores
      Una guía visual para el control de versiones
      Entrada de Wikipedia en el control de revisión
      Elegir un sistema de control de versiones distribuidas
      Me pregunto qué hace este botón (una lista aparte)


      Escrito exclusivamente para WDD por Mindy Wagner. Es diseñadora web en Viget Labs y ha trabajado en diseño impreso y web durante más de 8 años. Es licenciada en Comunicación y Arte en Medios Electrónicos por el Instituto Politécnico Rensselaer.

      ¿Usas Git u otro software para el control de versiones? Por favor comparta su experiencia con nosotros!