{"id":5,"date":"2022-04-11T19:07:24","date_gmt":"2022-04-11T19:07:24","guid":{"rendered":"https:\/\/www.evamc.net\/?p=5"},"modified":"2022-04-15T16:58:45","modified_gmt":"2022-04-15T16:58:45","slug":"apuntes-git-kc","status":"publish","type":"post","link":"https:\/\/www.evamc.net\/?p=5","title":{"rendered":"Apuntes Git (I)"},"content":{"rendered":"\n<p>Aplicaciones necesarias:<\/p>\n\n\n\n<ul><li>Git: software de control de versiones de aplicaciones dise\u00f1ado por Linus Torvalds<\/li><li>SourceTree: herramienta para trabajar con sistemas de versionado de forma gr\u00e1fica<\/li><li>Editor de Markdown: lenguaje de marcado que facilita la escritura de HTML<\/li><li>Pandoc: conversor de documentos, para convertir los archivos Markdown en HTML<\/li><\/ul>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\">Configuraci\u00f3n GIT<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code># Ver la versi\u00f3n instalada de Git\ngit --version\n# Cambiar la configuraci\u00f3n global\ngit config --global user.name \"Mi nombre\"\ngit config --global user.email \"mi@email.es\"\n# Cambiar los colores de la consola\ngit config --global color.ui true\n# Cambiar el editor por defecto a nano\ngit config --global core.editor \"nano\"\n# Consulta de los par\u00e1metros guardados\ngit config user.name\ngit config user.email<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Crear repositorio<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code># Crear y acceder al directorio en el que estar\u00e1 el c\u00f3digo\nmkdir miproyecto\ncd miproyecto\n# Para convertir la carpeta en un repositorio de Git\ngit init\n# Se ha creado una carpeta oculta .git\n# Si eliminamos la carpeta .git dejar\u00e1 de ser un repositorio<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Las tres zonas de Git<\/h2>\n\n\n\n<ol><li>Working Copy: es el directorio donde estamos trabajando, donde est\u00e1n nuestros archivos<\/li><li>Staging Area: donde vamos a poner los archivos de los que queremos guardar las versiones (trackear, tambi\u00e9n conocido como \u00e1rea index o cach\u00e9)<\/li><li>Repository: donde se almacena toda la informaci\u00f3n de los cambios<\/li><\/ol>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"775\" height=\"97\" src=\"https:\/\/www.evamc.net\/wp-content\/uploads\/2022\/04\/zonas-git.png\" alt=\"\" class=\"wp-image-50\" srcset=\"https:\/\/www.evamc.net\/wp-content\/uploads\/2022\/04\/zonas-git.png 775w, https:\/\/www.evamc.net\/wp-content\/uploads\/2022\/04\/zonas-git-300x38.png 300w, https:\/\/www.evamc.net\/wp-content\/uploads\/2022\/04\/zonas-git-768x96.png 768w\" sizes=\"(max-width: 775px) 100vw, 775px\" \/><\/figure>\n\n\n\n<p>Desde nuestro SO s\u00f3lo veremos el Working Copy, para ver los otros dos usaremos comandos Git<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Primeros pasos<\/h2>\n\n\n\n<p><strong>Usar <em>git status<\/em><\/strong> para saber:<\/p>\n\n\n\n<ul><li>qu\u00e9 archivos est\u00e1n en el Staging Area y cuales no<\/li><li>qu\u00e9 archivos son trackeados <\/li><li>qu\u00e9 archivos han sido modificados<\/li><\/ul>\n\n\n\n<p><strong>Del Working Copy al Staging Area:<\/strong> con <em>git add &lt;file&gt;,<\/em> <em>git add &lt;folder&gt;<\/em> o <em>git add *.txt<\/em><\/p>\n\n\n\n<p>Para deshacer los cambios del Working Copy:\u00a0<em>git checkout \u2014 &lt;file><\/em><\/p>\n\n\n\n<p>Para sacar un archivo del Staging Area:\u00a0<em>git reset HEAD &lt;file><\/em> o <em>&lt;folder><\/em> o <em>*.txt<\/em><\/p>\n\n\n\n<p><strong>Del Staging Area al Repositorio<\/strong>: con <em>git commit -m \u00abMensaje descriptivo\u00bb<\/em> o s\u00f3lo <em>git commit<\/em><\/p>\n\n\n\n<p>Un commit es un paquete que contiene:<\/p>\n\n\n\n<ul><li>Uno o m\u00e1s \u00abhunks\u00bb (el resultado de un diff). Se crea un hunks por archivo.<\/li><li>Un mensaje que describe qu\u00e9 cambios van en este commit. Hay que describirlo bien.<\/li><li>Un hash SHA para identificar el commit<\/li><li>Un enlace con su \u00abcommit padre\u00bb<\/li><\/ul>\n\n\n\n<p>Si modificamos un archivo y hacemos un git add pero no un git commit, y luego volvemos a modificar el archivo, tendremos que hacer el <em>git add<\/em> y el <em>git commit<\/em> de nuevo.<\/p>\n\n\n\n<p>Si eliminamos un archivo f\u00edsicamente tendremos que hacer el <em>git add<\/em> del archivo borrado, o con <em>git rm &lt;file><\/em> Git lo elimina y lo poner en el Staging Area autom\u00e1ticamente.<\/p>\n\n\n\n<p><strong>El comando <em>git log<\/em><\/strong> nos sirven para ver los commits que se han realizado.<\/p>\n\n\n\n<p><strong>Con el comando <em>git diff<\/em><\/strong> podremos ver las diferencias entre las diferentes zonas:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.evamc.net\/wp-content\/uploads\/2022\/04\/git-diff.png\" alt=\"\" class=\"wp-image-43\" width=\"341\" height=\"291\" srcset=\"https:\/\/www.evamc.net\/wp-content\/uploads\/2022\/04\/git-diff.png 390w, https:\/\/www.evamc.net\/wp-content\/uploads\/2022\/04\/git-diff-300x256.png 300w\" sizes=\"(max-width: 341px) 100vw, 341px\" \/><\/figure><\/div>\n\n\n\n<p>* Nota: <em>git diff &#8211;cached<\/em> es lo mismo que <em>git diff &#8211;staged<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Introducci\u00f3n a Markdown y Pandoc<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"821\" src=\"https:\/\/www.evamc.net\/wp-content\/uploads\/2022\/04\/markdown-intro-1024x821.png\" alt=\"\" class=\"wp-image-7\" srcset=\"https:\/\/www.evamc.net\/wp-content\/uploads\/2022\/04\/markdown-intro-1024x821.png 1024w, https:\/\/www.evamc.net\/wp-content\/uploads\/2022\/04\/markdown-intro-300x241.png 300w, https:\/\/www.evamc.net\/wp-content\/uploads\/2022\/04\/markdown-intro-768x616.png 768w, https:\/\/www.evamc.net\/wp-content\/uploads\/2022\/04\/markdown-intro-1200x963.png 1200w, https:\/\/www.evamc.net\/wp-content\/uploads\/2022\/04\/markdown-intro.png 1294w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><strong>Pandoc:<\/strong> con <em>pandoc &lt;file.md&gt;<\/em> se muestra en pantalla el resultado de la conversi\u00f3n de markdown a html, y con <em>pandoc &lt;file.md&gt; &gt; &lt;file.html&gt;<\/em> se crea el fichero en HTML.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Aplicaciones necesarias: Git: software de control de versiones de aplicaciones dise\u00f1ado por Linus Torvalds SourceTree: herramienta para trabajar con sistemas de versionado de forma gr\u00e1fica Editor de Markdown: lenguaje de marcado que facilita la escritura de HTML Pandoc: conversor de documentos, para convertir los archivos Markdown en HTML<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/www.evamc.net\/index.php?rest_route=\/wp\/v2\/posts\/5"}],"collection":[{"href":"https:\/\/www.evamc.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.evamc.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.evamc.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.evamc.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5"}],"version-history":[{"count":36,"href":"https:\/\/www.evamc.net\/index.php?rest_route=\/wp\/v2\/posts\/5\/revisions"}],"predecessor-version":[{"id":77,"href":"https:\/\/www.evamc.net\/index.php?rest_route=\/wp\/v2\/posts\/5\/revisions\/77"}],"wp:attachment":[{"href":"https:\/\/www.evamc.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.evamc.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.evamc.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}