<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ Sonia Garcia Alcaraz - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Descubre miles de cursos de programación escritos por expertos. Aprende Desarrollo Web, Ciencia de Datos, DevOps, Seguridad y obtén asesoramiento profesional para desarrolladores. ]]>
        </description>
        <link>https://www.freecodecamp.org/espanol/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ Sonia Garcia Alcaraz - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/espanol/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Tue, 19 May 2026 10:02:47 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/espanol/news/author/sonia/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ 12 juegos gratuitos de programación para aprender siendo principiante ]]>
                </title>
                <description>
                    <![CDATA[ Muchos principiantes pueden sentirse intimidados cuando están aprendiendo a programar. Pero aprender jugando puede ser divertido y educativo. De acuerdo a True Education Partnerships [https://www.trueeducationpartnerships.com/schools/gamification-in-education/], > La gamificación en el aprendizaje implica el uso de elementos basados en el juego, como la puntuación, la competición entre compañeros, el trabajo en ]]>
                </description>
                <link>https://www.freecodecamp.org/espanol/news/12-juegos-gratuitos-de-programacion-para-aprender-siendo-principiante/</link>
                <guid isPermaLink="false">63370a97d632c3088e4f18cb</guid>
                
                    <category>
                        <![CDATA[ Programación ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Sonia Garcia Alcaraz ]]>
                </dc:creator>
                <pubDate>Mon, 28 Nov 2022 20:05:33 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/espanol/news/content/images/2022/09/naser-tamimi-yG9pCqSOrAg-unsplash.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artículo original:</strong> <a href="https://www.freecodecamp.org/news/12-free-coding-games-to-learn-programming-for-beginners/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">12 Free Coding Games to Learn Programming for Beginners</a>
      </p><p>Muchos principiantes pueden sentirse intimidados cuando están aprendiendo a programar. Pero aprender jugando puede ser divertido y educativo.</p><p>De acuerdo a <a href="https://www.trueeducationpartnerships.com/schools/gamification-in-education/">True Education Partnerships</a>,</p><blockquote><strong>La gamificación en el aprendizaje</strong> implica el uso de elementos basados en el juego, como la puntuación, la competición entre compañeros, el trabajo en equipo y las tablas de puntuación, para impulsar el compromiso, ayudar a los estudiantes a asimilar nueva información y poner a prueba sus conocimientos.</blockquote><p><a href="https://neuromotricidad.es/blog/gamificacion-en-el-aula/">En este blog</a> se puede encontrar más información sobre gamificación en español.</p><p>He elaborado una lista de 12 juegos de codificación para principiantes.</p><p>Aquí está la lista completa. Una vez que encuentres un sitio web que te interese, haz clic en ese enlace y te llevará a una descripción más detallada de ese sitio web.</p><ol><li><a href="#codingame">CodinGame</a></li><li><a href="#css-diner">CSS Diner</a></li><li><a href="#flexbox-froggy">Flexbox Froggy</a></li><li><a href="#flexbox-defense">Flexbox Defense</a></li><li><a href="#grid-garden">Grid Garden</a></li><li><a href="#codecombat">CodeCombat</a></li><li><a href="#scratch">Scratch</a></li><li><a href="#tynker">Tynker</a></li><li><a href="#sql-murder-mystery">SQL Murder Mystery</a></li><li><a href="#untrusted">Untrusted</a></li><li><a href="#elevator-saga">Elevator Saga</a></li><li><a href="#checkio">CheckiO</a></li></ol><h2 id="codingame">CodinGame</h2><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-3.19.31-AM.png" class="kg-image" alt="Screen-Shot-2021-08-02-at-3.19.31-AM" width="600" height="400" loading="lazy"></figure><p><a href="https://www.codingame.com/start">CodinGame</a> es un sitio que te ayuda a trabajar en habilidades de resolución de problemas y aprender conceptos básicos de programación a través de un juego por turnos.</p><p>Esta plataforma es compatible con más de 25 lenguajes de programación diferentes y brinda a los jugadores la oportunidad de practicar, aprender y competir en concursos de codificación.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-10.44.38-PM.png" class="kg-image" alt="Screen-Shot-2021-08-02-at-10.44.38-PM" width="600" height="400" loading="lazy"></figure><p>Una vez que crees una cuenta, puedes empezar con la sección de orientación de nivel principiante. Se te presentarán los conceptos de programación estándar y resolverás mini-retos.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-10.44.10-PM.png" class="kg-image" alt="Screen-Shot-2021-08-02-at-10.44.10-PM" width="600" height="400" loading="lazy"></figure><h2 id="css-diner">CSS Diner</h2><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2022/09/cena-css---platos.jpg" class="kg-image" alt="cena-css---platos" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2022/09/cena-css---platos.jpg 600w, https://www.freecodecamp.org/espanol/news/content/images/size/w1000/2022/09/cena-css---platos.jpg 1000w, https://www.freecodecamp.org/espanol/news/content/images/size/w1600/2022/09/cena-css---platos.jpg 1600w, https://www.freecodecamp.org/espanol/news/content/images/2022/09/cena-css---platos.jpg 1914w" sizes="(min-width: 720px) 720px" width="1914" height="883" loading="lazy"></figure><p>En <a href="https://flukeout.github.io/">CSS Diner</a>, puedes practicar los conceptos básicos de CSS a través de una serie de 32 desafíos. Esta es una buena manera de familiarizarse con el idioma y divertirse aprendiéndolo.</p><p>Los primeros desafíos son cortos y se enfocan en trabajar con clases e ids. Pero a medida que avanza por los niveles, conocerás los pseudo-selectores, el selector <a href="https://developer.mozilla.org/es/docs/Web/CSS/:first-of-type">first-of-type</a>, el selector <a href="https://developer.mozilla.org/es/docs/Web/CSS/:last-of-type">last-of-type</a> y <a href="https://developer.mozilla.org/es/docs/Web/CSS/Universal_selectors">el selector universal</a>.</p><p>La comunidad ha hecho traducciones en varios idiomas como esta versión en español: <a href="http://cgosorio.es/DW/comedor-css/">Cena CSS</a>.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2022/09/cena-css--naranjas-1.jpg" class="kg-image" alt="Screen-Shot-2021-08-02-at-10.55.36-PM" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2022/09/cena-css--naranjas-1.jpg 600w, https://www.freecodecamp.org/espanol/news/content/images/size/w1000/2022/09/cena-css--naranjas-1.jpg 1000w, https://www.freecodecamp.org/espanol/news/content/images/2022/09/cena-css--naranjas-1.jpg 1366w" sizes="(min-width: 720px) 720px" width="1366" height="884" loading="lazy"></figure><h2 id="flexbox-froggy">Flexbox Froggy</h2><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2022/09/flex-rana-1.jpg" class="kg-image" alt="Screen-Shot-2021-08-02-at-4.05.43-AM" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2022/09/flex-rana-1.jpg 600w, https://www.freecodecamp.org/espanol/news/content/images/size/w1000/2022/09/flex-rana-1.jpg 1000w, https://www.freecodecamp.org/espanol/news/content/images/size/w1600/2022/09/flex-rana-1.jpg 1600w, https://www.freecodecamp.org/espanol/news/content/images/2022/09/flex-rana-1.jpg 1890w" sizes="(min-width: 720px) 720px" width="1890" height="890" loading="lazy"></figure><p>En <a href="https://flexboxfroggy.com/">Flexbox Froggy</a>, aprenderá Flexbox CSS colocando las ranas en los nenúfares correctos. Cuando termines el nivel 24, deberías tener la suficiente confianza como para usar Flexbox en tu próximo proyecto.</p><p>Cada desafío proporciona una descripción de las propiedades de Flexbox. Los primeros desafíos comienzan con facilidad, pero a medida que avanzas en el juego, las cosas se complican.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2022/09/flex-rana-23.jpg" class="kg-image" alt="Screen-Shot-2021-08-02-at-11.17.03-PM" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2022/09/flex-rana-23.jpg 600w, https://www.freecodecamp.org/espanol/news/content/images/size/w1000/2022/09/flex-rana-23.jpg 1000w, https://www.freecodecamp.org/espanol/news/content/images/size/w1600/2022/09/flex-rana-23.jpg 1600w, https://www.freecodecamp.org/espanol/news/content/images/2022/09/flex-rana-23.jpg 1910w" sizes="(min-width: 720px) 720px" width="1910" height="879" loading="lazy"></figure><h2 id="flexbox-defense">Flexbox Defense</h2><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-4.26.01-AM.png" class="kg-image" alt="Screen-Shot-2021-08-02-at-4.26.01-AM" width="600" height="400" loading="lazy"></figure><p><a href="http://www.flexboxdefense.com/">Flexbox Defense</a> es un juego de defensa de torres que te ayuda a fortalecer tus habilidades de CSS. Coloca las torres para mantener alejados a tus enemigos usando Flexbox CSS.</p><p>Los desafíos te proporcionarán definiciones de las propiedades de Flexbox. Una vez que escribas tu código, presiona el botón <em>Start Wave</em> (Iniciar oleada) y verás si has logrado detener a tus enemigos.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-11.22.57-PM.png" class="kg-image" alt="Screen-Shot-2021-08-02-at-11.22.57-PM" width="600" height="400" loading="lazy"></figure><h2 id="grid-garden">Grid Garden</h2><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2022/09/css-garden-1.jpg" class="kg-image" alt="Screen-Shot-2021-08-02-at-4.17.37-AM" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2022/09/css-garden-1.jpg 600w, https://www.freecodecamp.org/espanol/news/content/images/size/w1000/2022/09/css-garden-1.jpg 1000w, https://www.freecodecamp.org/espanol/news/content/images/size/w1600/2022/09/css-garden-1.jpg 1600w, https://www.freecodecamp.org/espanol/news/content/images/2022/09/css-garden-1.jpg 1905w" sizes="(min-width: 720px) 720px" width="1905" height="885" loading="lazy"></figure><p>Aprende CSS Grid pasando por los 28 niveles de <a href="https://cssgridgarden.com/">Grid Garden</a>. Se recomienda cierto conocimiento previo de CSS Grid, pero no es necesario para empezar con el juego.</p><p>Cada desafío proporciona una descripción de las propiedades de CSS Grid. Los primeros desafíos comienzan siendo fáciles, pero a medida que se avanza en el juego las cosas se complican.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2022/09/css-garden-27.jpg" class="kg-image" alt="Screen-Shot-2021-08-02-at-11.27.18-PM" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2022/09/css-garden-27.jpg 600w, https://www.freecodecamp.org/espanol/news/content/images/size/w1000/2022/09/css-garden-27.jpg 1000w, https://www.freecodecamp.org/espanol/news/content/images/2022/09/css-garden-27.jpg 1370w" sizes="(min-width: 720px) 720px" width="1370" height="641" loading="lazy"></figure><h2 id="codecombat">CodeCombat</h2><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2022/09/code-combat.jpg" class="kg-image" alt="Screen-Shot-2021-08-02-at-1.56.36-AM" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2022/09/code-combat.jpg 600w, https://www.freecodecamp.org/espanol/news/content/images/size/w1000/2022/09/code-combat.jpg 1000w, https://www.freecodecamp.org/espanol/news/content/images/size/w1600/2022/09/code-combat.jpg 1600w, https://www.freecodecamp.org/espanol/news/content/images/2022/09/code-combat.jpg 1876w" sizes="(min-width: 720px) 720px" width="1876" height="880" loading="lazy"></figure><p><a href="https://codecombat.com/">CodeCombat</a> funciona bien tanto para niños como para adultos. Puedes crear una cuenta gratuita y aprender fundamentos de la programación como bucles, funciones, condicionales y variables.</p><p>Puedes elegir el lenguaje de programación con el que quieras empezar y trabajar a través de los juegos.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2022/09/code-combat-lenjuages.jpg" class="kg-image" alt="Screen-Shot-2021-08-02-at-2.03.07-AM" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2022/09/code-combat-lenjuages.jpg 600w, https://www.freecodecamp.org/espanol/news/content/images/2022/09/code-combat-lenjuages.jpg 896w" sizes="(min-width: 720px) 720px" width="896" height="446" loading="lazy"></figure><p>También tienes la opción de pasar a la cuenta <em>premium </em>si te interesa tener acceso a más niveles.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2022/09/code-combat-pro.jpg" class="kg-image" alt="Screen-Shot-2021-08-02-at-2.05.35-AM" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2022/09/code-combat-pro.jpg 600w, https://www.freecodecamp.org/espanol/news/content/images/size/w1000/2022/09/code-combat-pro.jpg 1000w, https://www.freecodecamp.org/espanol/news/content/images/2022/09/code-combat-pro.jpg 1134w" sizes="(min-width: 720px) 720px" width="1134" height="793" loading="lazy"></figure><h2 id="scratch">Scratch</h2><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2022/09/scratch.jpg" class="kg-image" alt="Screen-Shot-2021-08-02-at-2.16.25-AM" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2022/09/scratch.jpg 600w, https://www.freecodecamp.org/espanol/news/content/images/size/w1000/2022/09/scratch.jpg 1000w, https://www.freecodecamp.org/espanol/news/content/images/size/w1600/2022/09/scratch.jpg 1600w, https://www.freecodecamp.org/espanol/news/content/images/2022/09/scratch.jpg 1836w" sizes="(min-width: 720px) 720px" width="1836" height="861" loading="lazy"></figure><p><a href="https://scratch.mit.edu/">Scratch</a> creado por el Instituto de Tecnología de Massachusetts (MIT, por sus siglas en inglés) es un lenguaje de programación basado en bloques en el que puedes aprender sobre eventos, condicionales, variables y más, creando tus propios juegos y animaciones.</p><p>Elije entre docenas de <em>sprites </em>(gráficos), sonidos y fondos para codificar tus propias creaciones y comenzar a comprender los conceptos básicos de programación.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/espanol/news/content/images/2022/10/scratch-bedroom.jpg" class="kg-image" alt="Screen-Shot-2021-08-02-at-2.28.37-AM" srcset="https://www.freecodecamp.org/espanol/news/content/images/size/w600/2022/10/scratch-bedroom.jpg 600w, https://www.freecodecamp.org/espanol/news/content/images/size/w1000/2022/10/scratch-bedroom.jpg 1000w, https://www.freecodecamp.org/espanol/news/content/images/size/w1600/2022/10/scratch-bedroom.jpg 1600w, https://www.freecodecamp.org/espanol/news/content/images/2022/10/scratch-bedroom.jpg 1880w" sizes="(min-width: 720px) 720px" width="1880" height="693" loading="lazy"></figure><p>Scratch también es el lenguaje utilizado durante la primera semana del curso de Harvard <a href="https://www.edx.org/es/course/introduction-computer-science-harvardx-cs50x">CS50: Introduction to Computer Science</a> (CS50: Introducción a ciencias de la computación).</p><h2 id="tynker">Tynker</h2><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-2.43.52-AM.png" class="kg-image" alt="Screen-Shot-2021-08-02-at-2.43.52-AM" width="600" height="400" loading="lazy"></figure><p><a href="https://www.tynker.com/">Tynker</a> es un sitio donde puedes construir proyectos y jugar juegos usando HTML, CSS, JavaScript, Python y Java. Tienen una extensa lista de proyectos, algoritmos y desafíos de estructura de datos.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-2.56.25-AM.png" class="kg-image" alt="Screen-Shot-2021-08-02-at-2.56.25-AM" width="600" height="400" loading="lazy"></figure><p>Puedes crear proyectos en el editor en linea y compartir tus creaciones con la comunidad. Este sitio está dirigido a niños y niñas de entre 5 y 18 años.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-10.23.31-PM.png" class="kg-image" alt="Screen-Shot-2021-08-02-at-10.23.31-PM" width="600" height="400" loading="lazy"></figure><h2 id="sql-murder-mystery">SQL Murder Mystery</h2><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-8.52.08-PM.png" class="kg-image" alt="Screen-Shot-2021-08-02-at-8.52.08-PM" width="600" height="400" loading="lazy"></figure><p><a href="https://mystery.knightlab.com/">SQL Murder Mystery</a> es ideal tanto para principiantes como para desarrolladores experimentados de SQL. Fortalece tu SQl y tus habilidades de resolución de problemas tratando de rastrear al asesino en esta historia policíaca de misterio.</p><p>El juego usa SQLite y &nbsp;antes de comenzar el juego, tendrás que familiarizarte con la estructura de la base de datos .</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-10.17.01-PM.png" class="kg-image" alt="Screen-Shot-2021-08-02-at-10.17.01-PM" width="600" height="400" loading="lazy"></figure><p>Si estás dado tus primeros pasos con SQL, hay <a href="https://mystery.knightlab.com/walkthrough.html">un recorrido detallado</a> para principiantes. De lo contrario, si tienes más experiencia con SQL, puedes sumergirse directamente en el juego.</p><h2 id="untrusted">Untrusted</h2><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-9.16.13-PM.png" class="kg-image" alt="Screen-Shot-2021-08-02-at-9.16.13-PM" width="600" height="400" loading="lazy"></figure><p><a href="https://alexnisnevich.github.io/untrusted/">Untrusted</a> es un juego de aventuras en el que puedes poner a prueba tu JavaScript y tus habilidades para resolver problemas. Guía al Dr. Eval a través de una serie de niveles resolviendo desafíos de JavaScript.</p><p>Si no tienes mucha experiencia en JavaScript, este juego puede ser un poco avanzado para ti. Pero si has pasado algún tiempo programando en JavaScript, los desafíos son factibles.</p><h2 id="elevator-saga">Elevator Saga</h2><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-9.20.11-PM.png" class="kg-image" alt="Screen-Shot-2021-08-02-at-9.20.11-PM" width="600" height="400" loading="lazy"></figure><p><a href="http://play.elevatorsaga.com/">Elevator Saga</a> es un juego de JavaScript en el que atravesarás una serie de desafíos tratando de transportar personas en ascensores de la manera más eficiente posible dentro del tiempo dado.</p><p>Una vez que modifiques el código, puedes probar la eficiencia de tu solución haciendo clic en el botón de <em>Start </em>(Inicio), en la esquina superior derecha. Cuando el programa se está ejecutando, puedes consultar las estadísticas para ver si pasas el desafío o no.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-10.08.06-PM.png" class="kg-image" alt="Screen-Shot-2021-08-02-at-10.08.06-PM" width="600" height="400" loading="lazy"></figure><h2 id="checkio">CheckiO</h2><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-9.30.59-PM.png" class="kg-image" alt="Screen-Shot-2021-08-02-at-9.30.59-PM" width="600" height="400" loading="lazy"></figure><p><a href="https://checkio.org/">CheckiO</a> es un juego de estrategia en el que puedes aprender TypeScript o Python a través de una serie de desafíos. Una vez que creas una cuenta gratuita, comenzarás con los desafíos para principiantes y te abrirás camino hasta los avanzados.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-9.48.46-PM.png" class="kg-image" alt="Screen-Shot-2021-08-02-at-9.48.46-PM" width="600" height="400" loading="lazy"></figure><p>El juego te dará acceso a sugerencias y soluciones de otros jugadores si necesitas ayuda. Resolverás cada uno de los desafíos en el editor en línea y pasarás a la siguiente misión cuando la tarea esté resuelta.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-9.58.49-PM.png" class="kg-image" alt="Screen-Shot-2021-08-02-at-9.58.49-PM" width="600" height="400" loading="lazy"></figure><hr> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Git Push a una rama remota:  Cómo cargar una rama local al origen ]]>
                </title>
                <description>
                    <![CDATA[ El comando básico para cargar o subir una rama local a un repositorio remoto es  git push. Este comando tiene una variedad de opciones y parámetros que puedes pasarle, y en este artículo aprenderás los que usarás más a menudo. Cómo subir una rama local de Git al origen ]]>
                </description>
                <link>https://www.freecodecamp.org/espanol/news/git-push-a-una-rama-remota/</link>
                <guid isPermaLink="false">632359eb70a5cb0907d6826e</guid>
                
                    <category>
                        <![CDATA[ Git ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Sonia Garcia Alcaraz ]]>
                </dc:creator>
                <pubDate>Fri, 21 Oct 2022 00:13:59 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/espanol/news/content/images/2022/09/git-push-to-remote-branch-article.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artículo original:</strong> <a href="https://www.freecodecamp.org/news/git-push-to-remote-branch-how-to-push-a-local-branch-to-origin/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">Git Push to Remote Branch – How to Push a Local Branch to Origin</a>
      </p><p>El comando básico para cargar o subir una rama local a un repositorio remoto es <code>git push</code>.</p><p>Este comando tiene una variedad de opciones y parámetros que puedes pasarle, y en este artículo aprenderás los que usarás más a menudo.</p><h2 id="c-mo-subir-una-rama-local-de-git-al-origen-origin-">Cómo subir una rama local de Git al origen (origin)<em> </em></h2><p>Si ejecutas el comando simple <code>git push</code>, por defecto, Git elegirá dos parámetros más por ti: el <strong>repositorio remoto</strong> y la <strong>rama </strong>a la que subir.</p><p>La forma general del comando es esta:</p><figure class="kg-card kg-code-card"><pre><code>$ git push &lt;remote&gt; &lt;branch&gt;</code></pre><figcaption>remote: repositorio remoto / branch: rama</figcaption></figure><p>Por defecto, Git elige <code>origin</code> como remoto y tu <em>rama actual</em> como la rama a la que subir.</p><p>Si tu rama actual es <code>main</code>, el comando <code>git push</code> suministrará los dos parámetros por defecto — ejecutándolo así <code>git push origin main</code>.</p><p>En el ejemplo de abajo, el remoto &nbsp;<code>origin</code> es un repositorio de GitHub, y la rama actual es <code>main</code>:</p><pre><code>(main)$ git remote -v 
origin  git@github.com:johnmosesman/burner-repo.git (fetch)
origin  git@github.com:johnmosesman/burner-repo.git (push)

(main)$ git push
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 16 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 274 bytes | 274.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To github.com:johnmosesman/burner-repo.git
   b7f661f..ab77dd6  main -&gt; main
</code></pre><p>De la salida se puede ver que la rama local &nbsp;<code>main</code> fue subida a la rama remota &nbsp;<code>main</code>:</p><pre><code>To github.com:johnmosesman/burner-repo.git
   b7f661f..ab77dd6  main -&gt; main
</code></pre><h2 id="c-mo-forzar-la-subida-a-una-rama-en-git">Cómo forzar la subida a una rama en Git</h2><p>Normalmente, subirás una rama y añadirás a su historial de confirmaciones.</p><p>Sin embargo, hay ocasiones en las que es necesario <strong>sobrescribir </strong>a la fuerza el historial de una rama.</p><p>Hay un par de razones por las que puedes querer hacer esto.</p><p>La primera razón es para corregir un error - aunque probablemente sea mejor hacer una nueva confirmación <a href="https://www.atlassian.com/es/git/tutorials/undoing-changes/git-revert">que revierta los cambios</a> (<a href="https://git-scm.com/docs/git-revert">git revert</a>).</p><p>El segundo y más común escenario es después de una acción como un <strong><a href="https://www.atlassian.com/es/git/tutorials/rewriting-history/git-rebase">rebase</a></strong>, que cambia el historial de confirmaciones:</p><blockquote>Internamente, Git [hace un rebase] creando nuevas confirmaciones y aplicándolas a la base especificada. Es muy importante entender que, aunque la rama parece la misma, se compone de nuevas confirmaciones por completo.</blockquote><p>Un rebase crea <em>confirmaciones completamente nuevas</em>.</p><p>Esto significa que si intentas cargar una rama que ha sido rebasada localmente - pero no en el remoto - el repositorio remoto reconocerá que el historial de confirmaciones ha cambiado, y te impedirá subir los cambios hasta que arregles las diferencias:</p><pre><code>(my-feature)$ git push
To github.com:johnmosesman/burner-repo.git
 ! [rejected]        my-feature -&gt; my-feature (non-fast-forward)
error: failed to push some refs to 'git@github.com:johnmosesman/burner-repo.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
</code></pre><p>Puedes hacer un <code>git pull</code> para fusionar las diferencias, pero si <em>realmente </em>quieres sobrescribir el repositorio remoto puedes añadir la marca <code>--force</code> :</p><pre><code>(my-feature)$ git push --force origin my-feature
Enumerating objects: 1, done.
Counting objects: 100% (1/1), done.
Writing objects: 100% (1/1), 184 bytes | 184.00 KiB/s, done.
Total 1 (delta 0), reused 0 (delta 0)
To github.com:johnmosesman/burner-repo.git
 + edb64e2...52f54da my-feature -&gt; my-feature (forced update)
</code></pre><p>(<strong>Nota:</strong> puedes usar la versión abreviada <code>-f</code> en vez de &nbsp;<code>--force</code>.)</p><p>Una subida forzada es una acción destructiva - úsala solo cuando tengas la certeza de que es lo que quieres hacer.</p><h3 id="forzar-la-subida-con-contrato-force-with-lease-">Forzar la subida con contrato (<code>--force-with-lease</code>)</h3><p>A veces puedes querer forzar la subida - pero solo si nadie más ha contribuido a la rama.</p><p>Si alguien más contribuye a tu rama y empuja sus cambios a la remota - y tú fuerzas, tu subida sobre ella - sobrescribirás sus cambios.</p><p>Para evitar este escenario, puedes utilizar la opción <code>--force-with-lease</code>.</p><p>De nuevo <a href="https://git-scm.com/docs/git-push">de la documentación oficial en inglés:</a></p><blockquote><em>--force-with-lease</em> solo, sin especificar los detalles, protegerá todas las referencias remotas que vayan a ser actualizadas requiriendo que su valor actual sea el mismo que la rama de seguimiento remoto que tenemos para ellas.</blockquote><p>Básicamente, le estás diciendo a Git que fuerce la actualización de esta rama <em>solo si </em>tiene el mismo aspecto que la última vez que la viste.</p><p>Si está colaborando con otros en tu rama, sería bueno evitar usar <code>--force</code> o al menos usar <code>--force-with-lease</code> para evitar perder los cambios que otros colaboradores han hecho.</p><h2 id="c-mo-subir-cambios-a-una-rama-con-diferente-nombre-en-git">Cómo subir cambios a una rama con diferente nombre en Git</h2><p>Normalmente, subirás tu rama local a una rama remota con el mismo nombre - pero no siempre.</p><p>Para subir a una rama con un nombre diferente, necesitas especificar <em>la rama de la que quieres subir los cambios</em> (nombre de la rama local) y el nombre de <em>la rama a la que quieres subir</em> (nombre de la rama remota) separadas con dos puntos (<code>:</code>).</p><p>Por ejemplo, si quieres subir de una rama llamada <code>some-branch</code> a <code>my-feature</code>:</p><figure class="kg-card kg-code-card"><pre><code>(some-branch)$ git push origin some-branch:my-feature
Total 0 (delta 0), reused 0 (delta 0)
To github.com:johnmosesman/burner-repo.git
 + 728f0df...8bf04ea some-branch -&gt; my-feature</code></pre><figcaption>some-branch: alguna-rama; my-feature: mi-funcionalidad</figcaption></figure><h3 id="c-mo-subir-todas-las-ramas-locales-al-remoto">Cómo subir todas las ramas locales al remoto</h3><p>No necesitarás subir todas las ramas de tu local muy a menudo, pero si lo haces puedes hacerlo añadiendo la marca <code>--all</code>:</p><pre><code>(main)$ git branch
* main
  my-feature

(main)$ git push --all
...
To github.com:johnmosesman/burner-repo.git
   b7f661f..6e36148  main -&gt; main
 * [new branch]      my-feature -&gt; my-feature
</code></pre><h2 id="conclusi-n">Conclusión</h2><p>El comando <code>git push</code> es uno de los que más a menudo vas a utilizar, y hay un montón de opciones que se pueden utilizar con él. Te animo a leer <a href="https://www.atlassian.com/es/git/tutorials/syncing/git-push">la documentación oficial</a>, para encontrar más opciones y atajos útiles.</p><p>Si te ha gustado este tutorial, también hablo de temas como este <a href="https://twitter.com/johnmosesman">en Twitter</a>, y escribo sobre ellos <a href="https://johnmosesman.com/">en mi página web</a>. </p> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
