{"id":100,"date":"2013-07-02T11:07:52","date_gmt":"2013-07-02T11:07:52","guid":{"rendered":"https:\/\/blogs.ua.es\/jpm33\/?p=100"},"modified":"2013-07-02T11:07:52","modified_gmt":"2013-07-02T11:07:52","slug":"git-guia-sencilla-para-su-uso-cotidiano","status":"publish","type":"post","link":"https:\/\/blogs.ua.es\/jpm33\/2013\/07\/02\/git-guia-sencilla-para-su-uso-cotidiano\/","title":{"rendered":"GIT: Gu\u00eda sencilla para su uso cotidiano"},"content":{"rendered":"<h1>Introducci\u00f3n<\/h1>\n<p>Hace unos d\u00edas publiqu\u00e9 una <a title=\"GIT: sistema de control de versiones ideal para programadores\" href=\"https:\/\/blogs.ua.es\/jpm33\/2013\/06\/26\/git-sistema-de-control-de-versiones-ideal-para-programadores\/\">entrada<\/a> introduciendo el sistema de control de versiones GIT. Voy a provechar esta entrada para explicar de una forma muy sencilla c\u00f3mo instalarlo y empezar a trabajar con \u00e9l.<\/p>\n<h1>Instalaci\u00f3n en Linux<\/h1>\n<p>En Linux es muy sencillo de instalar, desde la propia <a title=\"Instalar GIT en Linux\" href=\"http:\/\/git-scm.com\/download\/linux\">p\u00e1gina WEB<\/a> nos muestran c\u00f3mo instalarlo en varias distribuciones:<\/p>\n<table border=\"1\">\n<tbody>\n<tr>\n<th>Distro<\/th>\n<th>Comando para su instalaci\u00f3n<\/th>\n<\/tr>\n<tr>\n<td>Debian\/Ubuntu<\/td>\n<td>\n<pre><code>$ apt-get install git <\/code><\/pre>\n<\/td>\n<\/tr>\n<tr>\n<td>Fedora<\/td>\n<td>\n<pre><code>$ yum install git <\/code><\/pre>\n<\/td>\n<\/tr>\n<tr>\n<td>Gentoo<\/td>\n<td>\n<pre><code>$ emerge --ask --verbose dev-vcs\/git <\/code><\/pre>\n<\/td>\n<\/tr>\n<tr>\n<td>Arch Linux<\/td>\n<td>\n<pre><code>$ pacman -S git <\/code><\/pre>\n<\/td>\n<\/tr>\n<tr>\n<td>FreeBSD<\/td>\n<td>\n<pre><code>$ cd \/usr\/ports\/devel\/git &amp;&amp; make install <\/code><\/pre>\n<\/td>\n<\/tr>\n<tr>\n<td>Solaris 11 Express<\/td>\n<td>\n<pre><code>$ pkg install developer\/versioning\/git <\/code><\/pre>\n<\/td>\n<\/tr>\n<tr>\n<td>OpenBSD<\/td>\n<td>\n<pre><code>$ pkg_add git <\/code><\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h1>Instalaci\u00f3n en Windows<\/h1>\n<p>Debemos acceder al apartado de descargas:\u00a0<a href=\"http:\/\/git-scm.com\/downloads\">http:\/\/git-scm.com\/downloads<\/a>\u00a0y obtenerr la versi\u00f3n de Windows. Es un sencillo programa de instalaci\u00f3n en modo de asistente (el cl\u00e1sico siguiente-siguiente-siguiente).<\/p>\n<p>Yo recomiendo marcar durante la instalaci\u00f3n la opci\u00f3n &#8220;Git Bash Here&#8221; que nos permite a trav\u00e9s del bot\u00f3n derecho del rat\u00f3n abrir un shell (bash de mingw) en la carpeta que indiquemos. Resulta m\u00e1s c\u00f3modo.<\/p>\n<h1>Primeros pasos<\/h1>\n<p>Supongamos que trabajamos en un proyecto PHP, C u otro lenguaje de programaci\u00f3n. Lo primero que hemos de hacer es situarnos en la carpeta ra\u00edz del proyecto (Ej: \/home\/user(projects\/gitsample) y crear un repositorio. Si estamos en linux desde el terminal navegamos hasta la carpeta y en Windows con la opci\u00f3n del men\u00fa contextual &#8220;Git bash here&#8221; podemos abrir una consola en esa misma carpeta. Tecleamos los siguientes comandos:<\/p>\n<pre>$ git init\r\n$ git add .\r\n$ git commit -m \"Estado inicial del proyecto\"<\/pre>\n<p>\u00bfQu\u00e9 hemos hecho?<\/p>\n<ol>\n<li>Hemos creado el repositorio (git init, ver carpetas ocultas)<\/li>\n<li>Hemos a\u00f1adido TODOS los ficheros\/carpetas al repositorio (git add .). Es decir, le notificamos que los tenga en cuenta para cualquier cambio.<\/li>\n<li>Realizamos el primer commit del proyecto obteniendo una imagen de su estado inicial (git commit -m MENSAJE)<\/li>\n<\/ol>\n<p>Conforme trabajemos podemos ir anotando todos los cambios diarios en el proyecto. Por ejemplo del siguiente modo:<\/p>\n<pre>$ git add .\r\n$ git commit -a -m \"Fecha de hoy: Que cambios hice\"<\/pre>\n<p>Pero, \u00bfqu\u00e9 pasa si un d\u00eda me pongo a trabajar y &#8220;me cargo&#8221; el proyecto? \u00bfC\u00f3mo lo restablezco todo? \u00bfC\u00f3mo vuelvo a una versi\u00f3n anterior de un fichero? Existen var\u00edas formas, pero la m\u00e1s simple es esta (leer la documentaci\u00f3n para conocer otros casos y opciones):<\/p>\n<pre>$ git reset --hard\r\n$ git reset \/directorio\/al\/fichero\/a\/recuperar<\/pre>\n<p>Este es b\u00e1sicamente el d\u00eda a d\u00eda que se lleva a cabo con el control de versiones. En mi caso uso la herramienta gr\u00e1fica <a title=\"Cliente gr\u00e1fico para GIT SmartGIT\" href=\"http:\/\/www.syntevo.com\/smartgithg\/\">SmartGIT<\/a> para visualmente consultar todos los diff de los ficheros y como van evolucionando a trav\u00e9s de los commit.\u00a0Si bien es cierto que estos \u00faltimos meses trabajo con\u00a0<a title=\"IDE Aptana Studio para PHP\" href=\"http:\/\/www.aptana.com\/\">Aptana Studio<\/a>\u00a0y uso directamente algunas de sus herramientas gr\u00e1ficas para manejar GIT.<\/p>\n<h1>Proximamente<\/h1>\n<p>Otras de las caracter\u00edsticas interesantes de GIT es la posibilidad de trabajar con repositorios distribuidos, ramas y tags. En futuras entradas hablar\u00e9 de estas funcionalidades.<\/p>\n<h1>Referencias<\/h1>\n<ol>\n<li>Git sitio WEB oficial:\u00a0<a href=\"http:\/\/git-scm.com\/\" target=\"_blank\">http:\/\/git-scm.com\/<\/a><\/li>\n<li>Manual de referencia de Git :<a href=\"http:\/\/git-scm.com\/docs\" target=\"_blank\">http:\/\/git-scm.com\/docs<\/a><\/li>\n<li>Gu\u00eda r\u00e1pida muy \u00fatil:<a href=\"http:\/\/www.edy.es\/dev\/docs\/git-guia-rapida\/\" target=\"_blank\">http:\/\/www.edy.es\/dev\/docs\/git-guia-rapida\/<\/a><\/li>\n<li>Blog oficial de GIT:\u00a0<a href=\"http:\/\/git-scm.com\/blog\">http:\/\/git-scm.com\/blog<\/a><\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Introducci\u00f3n Hace unos d\u00edas publiqu\u00e9 una entrada introduciendo el sistema de control de versiones GIT. Voy a provechar esta entrada para explicar de una forma muy sencilla c\u00f3mo instalarlo y empezar a trabajar con \u00e9l. Instalaci\u00f3n en Linux En Linux &hellip; <a href=\"https:\/\/blogs.ua.es\/jpm33\/2013\/07\/02\/git-guia-sencilla-para-su-uso-cotidiano\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":3080,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[135,374],"tags":[481,154,236729,236718,281],"class_list":["post-100","post","type-post","status-publish","format-standard","hentry","category-linux","category-programacion","tag-debian","tag-ingenieria","tag-linux","tag-programacion-2","tag-windows"],"_links":{"self":[{"href":"https:\/\/blogs.ua.es\/jpm33\/wp-json\/wp\/v2\/posts\/100","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.ua.es\/jpm33\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.ua.es\/jpm33\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.ua.es\/jpm33\/wp-json\/wp\/v2\/users\/3080"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.ua.es\/jpm33\/wp-json\/wp\/v2\/comments?post=100"}],"version-history":[{"count":5,"href":"https:\/\/blogs.ua.es\/jpm33\/wp-json\/wp\/v2\/posts\/100\/revisions"}],"predecessor-version":[{"id":144,"href":"https:\/\/blogs.ua.es\/jpm33\/wp-json\/wp\/v2\/posts\/100\/revisions\/144"}],"wp:attachment":[{"href":"https:\/\/blogs.ua.es\/jpm33\/wp-json\/wp\/v2\/media?parent=100"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.ua.es\/jpm33\/wp-json\/wp\/v2\/categories?post=100"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.ua.es\/jpm33\/wp-json\/wp\/v2\/tags?post=100"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}