¿Deberían estos files auxiliares estar bajo el control de la versión de Git?

Decidí comenzar a usar el sistema de control de versiones de Git para mi proyecto C ++. Soy nuevo en el control de versiones. Para el maletero las cosas son simples, solo comprometo todas las versiones de proyectos que tengo. Guarde cada versión como una carpeta separada porque sabía que pronto usaría Git. Pero encontré un problema con mis twigs.

En algún momento del desarrollo, decidí que hay una class que quiero desarrollar en una twig. Sin control de versión, tuve que usar una twig "manual". Copié el file de encabezado más reciente y el file fuente de esa class en una carpeta separada y comencé a trabajar allí. Hice varias versiones allí para trabajar simultáneamente. Una versión fue el primer prototipo de la class según el plan (para el cual hice la "twig"). Luego agregué otro file, en el cual copié el primero pero eliminé cosas que parecían no ser necesarias. De esta forma tengo 2 versiones, una con todas mis ideas y características, la otra solo con lo que realmente uso en mi código, sin lo que no está en uso en este momento.

Pero luego agregué más. A medida que avanzaba el desarrollo, decidí que sería una buena idea hacer de esa class una plantilla. Así que agregué una tercera versión, que es como la segunda, pero ahora una funcionalidad implementada usando polymorphism se implementa utilizando una plantilla. Y todavía no puedo decir qué versión es la mejor, ya que es demasiado pronto para contarla, así que quiero tener las 3 juntas.

Luego hice otro file especial: una copy del tercer file de encabezado de la versión, en el que cada línea se puede marcar o no marcar. Marcado significa que utilizo ese método específico o estoy seguro de que va a estar en uso muy pronto, de lo contrario, la línea no está marcada.

Luego, un time después, comencé una nueva sucursal. Y para esa twig, necesitaba una nueva versión de esa class desarrollada en la primera twig. Así que simplemente copié una de las versiones a la carpeta de la nueva sucursal y comencé a trabajar allí. Ahora, de nuevo, tenía algún tipo de file auxiliar: tenía 2 files, uno del cual eliminé los methods de class que uso, y otro en el que escribo nuevos methods que necesito tener.

Ahora quiero empezar a usar Git y me pregunto: para todos los files de text, planos, diagtwigs, etc. del proyecto, es obvio: los mantengo fuera del repository de Git. Siempre que sea necesaria la edición queueborativa, puedo configurar una wiki o algo así. Pero para todas esas copys del mismo file de encabezado, y para esos files auxiliares "marcados", ¿qué hago con ellos? Quiero decir, está bien para mí tenerlos a todos en una twig, ¿pero qué sucede cuando fusiono una twig en el tronco? No quiero tener todas estas copys y versiones y lists, solo el último file de class que hice.

Por un lado, estos son files de código fuente de C ++ utilizados durante la encoding. Por otro lado, no forman parte del código fuente puro del package de software, simplemente me ayudan mientras trabajo pero nunca se comstackn porque al final solo hay una versión final de la class que elegí fusionar, y todos los demás files auxiliares, lists, etc. se guardan solo como reference.

¿Cuál sería la mejor cosa para hacer? Gracias por leer mi larga historia 🙂

EDITAR: Es un repository local en mi computadora personal

Lo que describes es el uso normal de las twigs: tienes tu twig principal ("oficial", si es donde) y una twig para desarrollar una nueva function (en realidad no tiene que vivir en un directory separado, si te entiendo) correctamente). Periódicamente, sincroniza la twig de características con el maestro, ya sea al volver a basarlo en el maestro o al fusionar sus cambios. A su vez, puede tener sucursales subordinadas en las que pruebe enfoques para desarrollar la característica, manejada con respecto a la característica twig al igual que ese respeto al maestro. Pero en ese caso debes tener cuidado siempre que rebases.

Debe conservar cualquier información que no sea fácil de recrear en el repository, ya sea código fuente, documentation o incluso bocetos de layout. Las cosas que pueden ser recreadas (código de object, documentation automáticamente formateada, …) deben mantenerse fuera (cualquier cambio allí creará una diferencia para ser registrado). Su repository (particularmente las twigs no publicadas) es su propio espacio de trabajo, puede ser todo lo desorderado que desee.

Echa un vistazo al libro mencionado en la página de inicio de git .

Bueno, eso es claramente la documentation y no el código fuente, por lo que debe separarlo de su código fuente. Como su documentation parece ser dependiente de sucursal, aún debe verificarla en el repository, pero en un directory de doc separado.

Acerca de la fusión: cómo funciona una fusión depende de usted al final. Git tiene una estrategia de fusión pnetworkingeterminada que es lo que la mayoría de la gente quiere la mayoría del time. Pero si dices que una fusión en la sucursal principal debería traer el código y no el documento, está bien. Simplemente fusiona de esa manera:

 git merge mybranch --no-commit rm -rf **docu-dir** git add -A git commit 

Mantenga siempre la documentation en el mismo repository que el código fuente. Si no lo hace, su documentation se pudrirá. Es porque la documentation está escrita contra alguna versión de su software, por lo que debe desarrollarse de la misma manera que el software.

Si su documentation se genera automáticamente o se comstack en otro formatting, confirme solo los datos de origen, el file MAKE y la configuration del generador, tal como lo hace con el código fuente.