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 (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í:
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.
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.
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:
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
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:
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.
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í:
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.
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.
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.
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:
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
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
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!