{"id":969,"date":"2019-05-08T08:38:48","date_gmt":"2019-05-08T14:38:48","guid":{"rendered":"https:\/\/sistemas.uttecamac.edu.mx\/wordpress\/?p=969"},"modified":"2019-05-09T15:59:19","modified_gmt":"2019-05-09T21:59:19","slug":"introduccion-a-git-parte-i","status":"publish","type":"post","link":"https:\/\/sistemas.uttecamac.edu.mx\/wordpress\/?p=969","title":{"rendered":"Introducci\u00f3n a Git (parte I)"},"content":{"rendered":"\n<p>Los VCS&#8217;s (Sistemas de Control de Versiones por sus siglas en ingl\u00e9s) existen desde los a\u00f1os 80. La primera versi\u00f3n de CVS, uno de los primeros en existencia, fue liberada en 1986. Con todo, no eran de uso general, en gran medida debido a sus limitaciones. CVS, por poner un ejemplo, no permit\u00eda renombrar archivos en el repositorio; era necesario borrarlo del repositorio, y volver a subirlo con el nuevo nombre. Ni pensar en hacer un renombrado masivo.<br><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"626\" src=\"https:\/\/sistemas.uttecamac.edu.mx\/wordpress\/wp-content\/uploads\/2019\/05\/git-tig-1024x626.png\" alt=\"\" class=\"wp-image-971\" srcset=\"https:\/\/sistemas.uttecamac.edu.mx\/wordpress\/wp-content\/uploads\/2019\/05\/git-tig-1024x626.png 1024w, https:\/\/sistemas.uttecamac.edu.mx\/wordpress\/wp-content\/uploads\/2019\/05\/git-tig-300x183.png 300w, https:\/\/sistemas.uttecamac.edu.mx\/wordpress\/wp-content\/uploads\/2019\/05\/git-tig-768x469.png 768w, https:\/\/sistemas.uttecamac.edu.mx\/wordpress\/wp-content\/uploads\/2019\/05\/git-tig.png 1276w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Interfaz de texto para Git<\/figcaption><\/figure>\n\n\n\n<p>Fast forward a 2005, a\u00f1o en que el equipo de desarrollo del kernel de Linux decidi\u00f3 dejar de usar el VCS que estaban usando hasta entonces. Linus Torvald quer\u00eda usar un VCS que pudiera aplicar parches al c\u00f3digo base de Linux en menos de 30 segundos (Aproximadamente quince millones de l\u00edneas de c\u00f3digo). Al no encontrar ning\u00fan VCS que cumpliera sus expectativas, decidi\u00f3 dar inicio al desarrollo de uno propio a su medida. El desarrollo comenz\u00f3 en abril de 2005; la versi\u00f3n 1.0 fue liberada el 21 de diciembre de ese mismo a\u00f1o y es pertinente decir que cumpli\u00f3 con los objetivos de Torvald. A este respecto, resulta interesante ver la <a href=\"https:\/\/www.ted.com\/talks\/linus_torvalds_the_mind_behind_linux\">entrevista que le hace Chris Anderson <\/a>en relaci\u00f3n al desarrollo de Linux y de git; no tiene desperdicio.<\/p>\n\n\n\n<p>Torvald comenz\u00f3 el desarrollo de git con tres metas en mente:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Tomar CVS como ejemplo de lo que <strong>no<\/strong> se deb\u00eda hacer.<\/li><li>Tener un flujo de trabajo distribuido (en contraste con el centralizado de SVN y CVS)<\/li><li>Incluir salvaguardas contra la corrupci\u00f3n y el borrado tanto accidental como malicioso.<\/li><\/ul>\n\n\n\n<p>Podemos decir que la meta fue alcanzada, git ha resultado ser un VCS bastante robusto, con soporte para desarrollo no lineal (m\u00e1s adelante veremos que significa eso), distribuido, perfectamente integrable con los protocolos de comunicaci\u00f3n actual (es posible incluso aplicar parches al <em>codebase<\/em> desde el correo), maneja sin dificultad proyectos grandes (con el desarrollo de videojuegos hay una desventaja, que veremos m\u00e1s adelante) y que permite el firmado criptogr\u00e1fico de <em>commits<\/em> y releases. <br><\/p>\n\n\n\n<p>Por todo ello, en poco tiempo, git se ha convertido en el est\u00e1ndar de facto en la industria. Aunque existen muchos otros VCS&#8217;s en el mercado, se espera que el desarrollador conozca por lo menos git. Hay todo un ecosistema alrededor de git (github, bitbucket, redmine, gitkraken, etc). Y con todo, no son pocos los desarrolladores que confiesan no entender bien su funcionamiento, y m\u00e1s bien establecen un flujo de trabajo vud\u00fa (es decir, se teclean los comandos como si fueran encantamientos m\u00e1gicos, sin entender su funcionamiento y solo esperando resultados), huelga decir que tal enfoque es sub\u00f3ptimo. Por ello, en las siguientes entregas trataremos de romper el misticismo de git y comprender mejor su funcionamiento.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Los VCS&#8217;s (Sistemas de Control de Versiones por sus siglas en ingl\u00e9s) existen desde los a\u00f1os 80. La primera versi\u00f3n de CVS, uno de los primeros en existencia, fue liberada en 1986. Con todo, no eran de uso general, en gran medida debido a sus limitaciones. CVS, por poner un ejemplo, no permit\u00eda renombrar archivos [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[65],"tags":[67,66],"class_list":["post-969","post","type-post","status-publish","format-standard","hentry","category-desarrollo","tag-desarrollo","tag-git"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/sistemas.uttecamac.edu.mx\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/969","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sistemas.uttecamac.edu.mx\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sistemas.uttecamac.edu.mx\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sistemas.uttecamac.edu.mx\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/sistemas.uttecamac.edu.mx\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=969"}],"version-history":[{"count":5,"href":"https:\/\/sistemas.uttecamac.edu.mx\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/969\/revisions"}],"predecessor-version":[{"id":976,"href":"https:\/\/sistemas.uttecamac.edu.mx\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/969\/revisions\/976"}],"wp:attachment":[{"href":"https:\/\/sistemas.uttecamac.edu.mx\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=969"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sistemas.uttecamac.edu.mx\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=969"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sistemas.uttecamac.edu.mx\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=969"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}