{"id":86,"date":"2018-04-23T17:16:00","date_gmt":"2018-04-23T15:16:00","guid":{"rendered":"https:\/\/tiraquelibras.com\/blog\/?p=86"},"modified":"2019-12-26T17:00:55","modified_gmt":"2019-12-26T16:00:55","slug":"git-parte-i-inicio","status":"publish","type":"post","link":"https:\/\/blog.tiraquelibras.com\/?p=86","title":{"rendered":"Git parte I &#8211; inicio"},"content":{"rendered":"<p><a href=\"https:\/\/git-scm.com\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\" class=\"external external_icon\">Git<\/a> es un potente software para el control de versiones dise\u00f1ado por <a href=\"https:\/\/es.wikipedia.org\/wiki\/Linus_Torvalds\" target=\"_blank\" rel=\"noopener noreferrer nofollow\" class=\"external external_icon\">Linus Torvalds<\/a>\u00a0con el objetivo de mantener un control de versiones en aquellas aplicaciones que contienen un gran n\u00famero de archivos de c\u00f3digo fuente.<\/p>\n<p>Este tipo de proyectos conllevan un gran n\u00famero de cambios en las versiones de su c\u00f3digo, por lo que permite coordinar y facilitar el trabajo al equipo de desarrolladores. Se puede utilizar para cualquier prop\u00f3sito, un sencillo script en <em>Bash<\/em>, un programa realizado en cualquier lenguaje, un desarrollo web, &#8230; del cual se quieran mantener los cambios de versiones para unificar el trabajo, dar marcha atr\u00e1s a alg\u00fan cambio aplicado o trabajar en distintas ramas para una posterior fusi\u00f3n con la principal, entre muchos otros fines.<\/p>\n<p>Como ejemplo de uso cabe destacar al grupo de programaci\u00f3n del <a href=\"https:\/\/es.wikipedia.org\/wiki\/N%C3%BAcleo_Linux\" target=\"_blank\" rel=\"noopener noreferrer nofollow\" class=\"external external_icon\">n\u00facleo de Linux<\/a>, el cual hace uso de este software para su mantenimiento\/desarrollo. M\u00e1s informaci\u00f3n en la Wikipedia pinchando <a href=\"https:\/\/es.wikipedia.org\/wiki\/Git\" target=\"_blank\" rel=\"noopener noreferrer nofollow\" class=\"external external_icon\">aqu\u00ed<\/a>.<\/p>\n<p>Para todo programador es fundamental saber trabajar con este tipo de herramientas, las cuales se est\u00e1n imponiendo como un est\u00e1ndar en el trabajo diario de muchos profesionales y empresas, sobre todo si se trabaja en un equipo de desarrollo con m\u00e1s personas. Almacenar el c\u00f3digo con un repositorio remoto, que puede ser p\u00fablico o privado, es posible haciendo uso de esta potente herramienta, permitiendo compartir el c\u00f3digo con m\u00e1s personas \u00a0o tener tu propio repositorio personal al que acceder est\u00e9s donde est\u00e9s.<\/p>\n<p>A lo largo de este conjunto de entradas se explicar\u00e1n los comandos b\u00e1sicos para trabajar tanto en la m\u00e1quina local como en un repositorio remoto (<a href=\"https:\/\/github.com\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\" class=\"external external_icon\">GitHub<\/a> o <a href=\"https:\/\/bitbucket.org\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\" class=\"external external_icon\">BitBucket<\/a>). Empecemos!!!<\/p>\n<p><a href=\"https:\/\/blog.tiraquelibras.com\/wp-content\/uploads\/2018\/04\/computer-funny-2.jpg\" class=\"external\" rel=\"nofollow\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-115 size-medium\" src=\"https:\/\/blog.tiraquelibras.com\/wp-content\/uploads\/2018\/04\/computer-funny-2-300x200.jpg\" alt=\"\" width=\"300\" height=\"200\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<hr \/>\n<p>Partimos de un directorio con dos archivos, <strong><em>index.php<\/em><\/strong> y <em>style.css,<\/em> con el siguiente contenido (tranquilo que en estas entradas no vamos a aprender a programar):<\/p>\n<p><strong><em>index.php<\/em><\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"html\">&lt;!DOCTYPE html&gt;\r\n&lt;html&gt;\r\n        &lt;head&gt;\r\n          &lt;title&gt;Formulario PHP&lt;\/title&gt;\r\n      &lt;link type='text\/css' rel='stylesheet' href='style.css'\/&gt;\r\n        &lt;\/head&gt;\r\n        &lt;body&gt;\r\n        &lt;div id=\"main\"&gt;\r\n                &lt;p&gt;Prueba de formulario en PHP&lt;\/p&gt;\r\n\r\n                &lt;form action=\"index.php\" method=\"GET\" &gt;\r\n                    Categoria: &lt;input type=\"text\" name=\"categoria\" \/&gt;\r\n                    Producto:\r\n                        &lt;select name=\"producto\" &gt;\r\n                            &lt;option value=\"Polo\"&gt; Polo &lt;\/option&gt;\r\n                            &lt;option value=\"Quiksilver\"&gt; Quiksilver &lt;\/option&gt;\r\n                            &lt;option value=\"Tommy\"&gt; Tommy &lt;\/option&gt;\r\n                        &lt;\/select &gt;\r\n                        &lt;input type=\"submit\" value=\"Enviar\" \/&gt;\r\n                &lt;\/form &gt;\r\n        &lt;?php\r\n            if (isset($_GET['categoria'])){\r\n            $categoria = $_GET['categoria'];\r\n            $producto = $_GET['producto'];\r\n            echo \"&lt;p&gt;Seleccion\u00f3 el producto \" . $producto . \" de la categor&amp;iacute;a \". $categoria . \"&lt;\/p&gt;\";\r\n            }\r\n        ?&gt;\r\n        &lt;\/div&gt;\r\n    &lt;\/body&gt;\r\n&lt;\/html&gt;\r\n<\/pre>\n<p><strong><em>style.css<\/em><\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">html, body {\r\n        margin: 0;\r\n        padding: 0;\r\n}\r\n\r\n#main {\r\n        margin: 0 auto;\r\n        padding: 20px 15px;\r\n}\r\n\r\n#main p {\r\n        font-weight: bold;\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<hr \/>\n<h2><strong>Iniciar un proyecto<\/strong><\/h2>\n<p>Dentro del directorio en el que vayamos a tener el c\u00f3digo de nuestra aplicaci\u00f3n ejecutamos el siguiente comando:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\"># git init<\/pre>\n<p>Se mostrar\u00e1 el siguiente mensaje:<\/p>\n<blockquote><p>Initialized empty Git repository in \/path_directorio\/.git\/<\/p><\/blockquote>\n<p>Si todo ha ido bien, se crear\u00e1 el archivo oculto <strong><span style=\"color: #ff0000;\">.git<\/span><\/strong>:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\"># ls -altr\r\ntotal 20\r\ndrwxr-xr-x 12 www-data www-data 4096 abr 23 13:51 ..\r\n-rw-r--r-- 1 root root 136 abr 23 14:01 style.css\r\n-rw-r--r-- 1 root root 1000 abr 23 14:02 index.php\r\ndrwxr-xr-x 3 root root 4096 abr 23 14:02 .\r\ndrwxr-xr-x 7 root root 4096 abr 23 14:02 .git<\/pre>\n<p>&nbsp;<\/p>\n<hr \/>\n<h2><strong>Ver el estado de los archivos<\/strong><\/h2>\n<p>En estos momentos a\u00fan no tenemos ning\u00fan archivo agregado al repositorio, por lo que estar\u00e1n todos listos para ser almacenados.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\"># git status\r\nOn branch master\r\n\r\nInitial commit\r\n\r\nUntracked files:\r\n  (use \"git add &lt;file&gt;...\" to include in what will be committed)\r\n\r\n        index.php\r\n        style.css\r\n\r\nnothing added to commit but untracked files present (use \"git add\" to track)<\/pre>\n<p>&nbsp;<\/p>\n<hr \/>\n<h2><strong>Agregar archivos al repositorio<\/strong><\/h2>\n<p>Para agregar todos los archivos al repositorio usaremos el siguiente comando.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\"># git add -A<\/pre>\n<p>O el comando:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\"># git add .<\/pre>\n<p>Se indican los archivos que han sido agregados al repositorio:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\"># git status\r\nOn branch master\r\n\r\nInitial commit\r\n\r\nChanges to be committed:\r\n  (use \"git rm --cached &lt;file&gt;...\" to unstage)\r\n\r\n        new file:   index.php\r\n        new file:   style.css<\/pre>\n<p>Para agregar un archivo en concreto:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\"># git add nombre_archivo<\/pre>\n<p>Por ejemplo, vamos a modificar el archivo .css y agregarlo al repositorio, por ejemplo especificando el tama\u00f1o de letra (<strong>font-size<\/strong>):<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"css\">html, body {\r\n        margin: 0;\r\n        padding: 0;\r\n        font-size: 18px;\r\n}<\/pre>\n<p>Si comprobamos el estado de los archivos podemos ver qu\u00e9 archivo ha sido modificado, pendiente de ser actualizado en el repositorio:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\"># git status\r\nOn branch master\r\n\r\nInitial commit\r\n\r\nChanges to be committed:\r\n  (use \"git rm --cached &lt;file&gt;...\" to unstage)\r\n\r\n        new file:   index.php\r\n        new file:   style.css\r\n\r\nChanges not staged for commit:\r\n  (use \"git add &lt;file&gt;...\" to update what will be committed)\r\n  (use \"git checkout -- &lt;file&gt;...\" to discard changes in working directory)\r\n\r\n        modified:   style.css<\/pre>\n<p>Agregamos el archivo en concreto:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\"># git add style.css<\/pre>\n<p>Y ya estar\u00edan todos actualizados:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\"># git status\r\nOn branch master\r\n\r\nInitial commit\r\n\r\nChanges to be committed:\r\n  (use \"git rm --cached &lt;file&gt;...\" to unstage)\r\n\r\n        new file:   index.php\r\n        new file:   style.css<\/pre>\n<p>&nbsp;<\/p>\n<hr \/>\n<p>Con estos comandos iniciamos nuestro primer repositorio con Git en el directorio en donde tengamos nuestro proyecto. En las siguientes entradas veremos como crear el primer punto de partida o <em><strong>snapshot<\/strong><\/em>\u00a0y la configuraci\u00f3n inicial del repositorio.<\/p>\n<p>Aaaadios!!!!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Git es un potente software para el control de versiones dise\u00f1ado por Linus Torvalds\u00a0con el objetivo de mantener un control de versiones en aquellas aplicaciones<span class=\"read-more-link\"><a class=\"read-more\" href=\"https:\/\/blog.tiraquelibras.com\/?p=86\">Read More<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":87,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[17,20,19],"class_list":["post-86","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programacion","tag-git","tag-repositorio","tag-versiones"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=\/wp\/v2\/posts\/86","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=86"}],"version-history":[{"count":0,"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=\/wp\/v2\/posts\/86\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=\/wp\/v2\/media\/87"}],"wp:attachment":[{"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=86"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=86"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.tiraquelibras.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=86"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}