Tengo varios dias posponiendo mi articulo de git, quiero hacer algo educativo, pero carezco de la motivacion, de momento vamos solo con mi opinion, porque el articulo que sigue es de horrores sobre git.
Un poco de historia, ¿cuantos han creado versiones de documentos en su escritorio?, archivo_1,archivo_2,archivo_3,archivo_4,archivo_5, archivo_final, archivo_final_1,archivo_final_2,archivo_final_3,archivo_final_final, archivo_final_esta_vez_si, archivo_realmente_final, archivo_porque_imprime_mal, archivo_ESTO_NO_SIRVE_FINAL_1.
¿Todos? si probablemente todos. Lo mismo sucede con proyectos de desarrollo de software, en especial desarrollo web en los 90 y 2000. En especial PHP y javascript. En especial todo lo hecho con Dreamweaver.
Si bien en esa epoca existian soluciones centralizadas llamadas ‘Subversion’ esas soluciones son complejas de usar fuera de una oficina, y fuera de un equipo pequeño de trabajo. Nada utiles para Linux.
Luego de un pequeño problema de licencias, el equipo que desarrolla Linux, para sus constribuciones de Open Source, desarrollaro Git en un dia. Un gestor de contenido del infierno, el cual permitia hacer cambios sumamente rapidos y compartir desde cualquier lugar.
Si bien eso es Git, un manejador de versiones de archivo. En su forma mas basica se crean versiones en el tiempo, de los archivos en un directorio/carpeta. Y se puede ir hacia adelante y atras sobre estas versiones.
Un computador puede tener varias versiones del espacio de trabajo, a la vez, y comparar entre ellas, asi como puede acceder a otros espacios remotos de trabajo, y traer informacion.
Toda la linea de tiempo y multiples lineas de tiempo de los archivos se pueden mezclar las unas con las otras, principalmente si tienen el mismo origen.
Y es siempre la version local, la que tiene la realidad, para ese dispositivo. Los remotos son una sugerencia.
Git inicio si recuerdo bien en 2005, yo aprendi en mi etapa open source, durante 2007 en adelante. Creo que justo cuando Github estaba saliendo al mercado.
Git resuelve el problema de compartir documentos de texto plano. Git resuelve el problema de accesos, y git tiene muchas funciones de navegacion de la linea de tiempo.
Git es genial, es una herramienta simple que soporta cualquier flujo de trabajo.
Voy a dejar por aca algunos comandos para iniciar con git.
Git init . > Crea un repositorio
Git clone 192.0.0.0 > Copia un repositorio del internet a local
Git add -A > Crea una pre confirmacion
Git commit -m ” > Crea una version
Git checkout -b rama > Crea una rama de trabajo, una bifurcacion de la linea de tiempo
Git checkout master > cambia entre ramas de trabajo
Y para trabajar con personas
Git push origin master > envia datos a un repositorio externo al que tengan permisos
Git pull origin master > trae los datos del repositorio externo al que tengan permisos
Git merge master > combina dos ramas.
Git rebase master > reaplica todos los commits encima de master.
Es sumamente increible que se creara un protocolo, y un software que permitia trabajar sobre TCP, con SSH a cualquier computador que exponga informacion. Elegir entre las versiones que quieres. Aplicar cambios encima. Y usar a tu gusto.
Como mencione, es ideal para soportar cualquier flujo de trabajo.
Pero voy a quedar en esta nota, para este articulo.