¿Cómo migro múltiples versiones de código usando Git?

No he usado ningún tipo de control de versión debido a la falta de conocimiento, pero acabo de empezar a usar Git, así que conozco los commands básicos de git add {filename}, git commit -u {filename}, git push origin master .

Como una forma de seguir los cambios antes de Git, estaba haciendo copys múltiples de cada file en el que trabajé, por ejemplo, el file original puede haber sido llamado abc.php, el primer cambio podría haber sido llamado abc_20130101.php, el segundo cambio, abc_20130102. php, etc.

Al ver que estos fueron cambios durante un período de time y tengo varios files, ¿cuál es el mejor enfoque para migrarlos a un service alojado ya sea GitHub, BitBucket, etc.

¿Creo un solo repository y clono el repository? Entonces, ¿cómo me gustaría evitar el compromiso de los files como un solo empujón, ya que en realidad son versiones diferentes? ¿Cuál es el mejor enfoque? ¿Cómo lo haría?

La respuesta de David Culp es genial, y soy un poco más lento a la hora de escribir. Dejaré la mía aquí de todos modos.

Mi consejo sería dejar tus files antiguos tal como están y conservarlos como un file. Comience a usar Git a partir de hoy y permita que rastree nuevos cambios en sus files.

Si realmente desea get su historial de desarrollo en Git, haría lo siguiente con un nuevo repository:

  • Copie su versión más antigua de abc.php en el repository, asegurándose de que se llame abc.php (es decir, elimine la date del nombre del file), y lo mismo para cualquier otro file con la misma date.
  • Haz un git add .
  • Hacer un git commit -m "Files from 2013-01-01"
  • Repita para cada versión en order cronológico
  • Presione a GitHub / BitBucket

Asegúrese de agregar sus versiones actuales al final.

Nota: Si trabaja solo, los services en línea como GitHub / BitBucket no son necesarios. Git funciona bien con repositorys independientes en tu PC.

Si desea que el repository de git refleje la historia del proyecto, se necesitarían algunos esfuerzos.

Los pasos básicos serían get una list de todos los files que tienen dates (los files de almacenamiento). Use esto para crear una list de 'revisiones', luego haga lo siguiente:

 for each revision recreate the project as it was in that state (renaming files so they don't have dates) copy the files to the repository add files to index commit files to repository 

Al final terminaría con una serie de compromisos que representaron el desarrollo del proyecto. Esto podría ser una gran cantidad de trabajo, dependiendo de cuántas revisiones termines.

Es posible que pueda realizar un script de la mayor parte del trabajo, pero podría ser más fácil hacerlo manualmente.

Sin embargo, esto dará como resultado un repository con confirmaciones en cada date en que hubo un cambio de file. Es posible networkingucir el número de confirmaciones combinando las 'revisiones' que están relacionadas con una característica del proyecto individual.