<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Zelkairi</title>
    <description>The latest articles on DEV Community by Zelkairi (@zelkairi).</description>
    <link>https://dev.to/zelkairi</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F694137%2F2d7c5e79-a92a-4aad-ae86-988d78915fc4.jpeg</url>
      <title>DEV Community: Zelkairi</title>
      <link>https://dev.to/zelkairi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zelkairi"/>
    <language>en</language>
    <item>
      <title>Manejo de un repositorio privado dependiente de repositorio publico</title>
      <dc:creator>Zelkairi</dc:creator>
      <pubDate>Mon, 13 Dec 2021 22:54:42 +0000</pubDate>
      <link>https://dev.to/zelkairi/manejo-de-un-repositorio-privado-dependiente-de-repositorio-publico-2e6l</link>
      <guid>https://dev.to/zelkairi/manejo-de-un-repositorio-privado-dependiente-de-repositorio-publico-2e6l</guid>
      <description>&lt;p&gt;A menudo  encontramos proyectos de código abierto que cumplen con las características para ser usados en nuestros propios proyectos. Pero cuando uno no tiene tanto expertiz con git esto puede ser un poco complejo(como lo fue para mi).&lt;/p&gt;

&lt;p&gt;A continuación veremos  un proceso simple  en el cual tenemos un repositorio publico original y nos disponemos a usarlo como base para nuestro propio proyecto privado.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Proyecto Publico&lt;/strong&gt;&lt;br&gt;
Subi este pequeño proyectito  a un repositorio publico ,este  simulara ser nuestro proyecto OPEN SOURCE&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---GjYoIFr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e3smb29hl7h22ou1gke0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---GjYoIFr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e3smb29hl7h22ou1gke0.png" alt="Image description" width="880" height="241"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  1.CLONADO DEL PROYECTO
&lt;/h2&gt;

&lt;p&gt;Primero vamos a una carpeta y luego ejecutamos el famosos git clone,&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;PS C:\Users\sergi\Desktop\estudios\momentaneo&amp;gt; git clone https://github.com/rayo80/remoto-prueba.git
PS C:\Users\sergi\Desktop\estudios\momentaneo&amp;gt; cd remoto-prueba
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Podemos ver las ramas y los origenes remotos asociados(repositorio publico)&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Hy15BuKV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8k79cgb79wbdroujkqk4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Hy15BuKV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8k79cgb79wbdroujkqk4.png" alt="Image description" width="707" height="182"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Aprovechamos y eliminamos el origen remoto (origin),esto lo hacemos para no confundirnos mas adelante.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--s4TnjKXw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mxftjpbctgyt02d1ynlr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--s4TnjKXw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mxftjpbctgyt02d1ynlr.png" alt="Image description" width="762" height="120"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  2.CREACION DEL REPOSITORIO COPIA
&lt;/h2&gt;

&lt;p&gt;Ahora crearemos un repositorio copia.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1c6U9iAR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x0zvvt6xphgv83jukaor.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1c6U9iAR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x0zvvt6xphgv83jukaor.png" alt="Image description" width="392" height="148"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Veremos  las indicaciones de siempre &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BBj3EoOr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/15svsudbcob4ve0m7xaw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BBj3EoOr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/15svsudbcob4ve0m7xaw.png" alt="Image description" width="693" height="159"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Aunque todavía no subimos ,este sera el repositorio donde guardaremos nuestro propio proyecto privado que nacio siendo un clon.&lt;/p&gt;

&lt;p&gt;_Notas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Si usas la misma cuenta no tendrás problema pues las credenciales de github ya están en tu PC.&lt;/li&gt;
&lt;li&gt;Si usas otra cuenta de github tendrías que hacer un nuevo logueo, en mi caso como quería ahorrar tiempo lo que hice  fue agregar a la cuenta de mi pc como colaborador._&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  3.REALIZANDO CAMBIOS EN EL LOCAL
&lt;/h2&gt;

&lt;p&gt;Realizamos los cambios que queramos a nuestro clon ,yo agregare un archivo más y escribiré mas líneas en el archivo original.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qB2y-rwL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qr6q8cwt4rn2z2w93ejk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qB2y-rwL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qr6q8cwt4rn2z2w93ejk.png" alt="Image description" width="794" height="267"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Zl9yho_l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/34131ve38k0jypntna38.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Zl9yho_l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/34131ve38k0jypntna38.png" alt="Image description" width="880" height="253"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  4.SUBIENDO EL CLON  CON LOS CAMBIOS Al REPOSITORIO PRIVADO
&lt;/h2&gt;

&lt;p&gt;EL clon ha sufrido cambios y se esta volviendo nuestro propio proyecto privado.&lt;br&gt;
Primero agregamos un nuevo origen(este es el repo privado creado anteriormente), lo mejor es no usar  "origin" pues con este hicimos referencia al open source original, yo le pondre "clonigin"&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git remote add clonigin https://github.com/rayito80/REPOCLON.git

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hLJmxg5A--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b7wm73mlu8o1astqdl6i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hLJmxg5A--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b7wm73mlu8o1astqdl6i.png" alt="Image description" width="880" height="95"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;hacemos un push&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git push -u clonigin main 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Y listo podemos ver que se subieron los cambios a nuestro repo privado&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WerDwF1X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pc54qdqmbu39cd3jef80.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WerDwF1X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pc54qdqmbu39cd3jef80.png" alt="Image description" width="880" height="280"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  5.ACTUALIZANDO EL "OPENSOURCE"
&lt;/h2&gt;

&lt;p&gt;Un proyecto de código abierto siempre esta actualizandose,resolviendo bugs,etc.&lt;br&gt;
En mi caso le agregue una actualización un nuevo archivo.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kmnTSvxj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bt0eetycshb4jbvrcg7e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kmnTSvxj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bt0eetycshb4jbvrcg7e.png" alt="Image description" width="880" height="339"&gt;&lt;/a&gt;&lt;br&gt;
Suponiendo que estos cambios  también son útiles para nuestra aplicación privada clonada. Como los traemos a nuestra aplicación?&lt;/p&gt;
&lt;h2&gt;
  
  
  6.ACTUALIZANDO NUESTRO CLON PRIVADO
&lt;/h2&gt;

&lt;p&gt;Para esto tenemos que volver a agregar el origen remoto del repositorio publico y usar los comando fetch y luego merge.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Yj0RfPuI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w7rosretefww4h5bz2bm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Yj0RfPuI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w7rosretefww4h5bz2bm.png" alt="Image description" width="880" height="143"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Realizamos un &lt;em&gt;fetch&lt;/em&gt; del origin.Esto solo bajara los cambios del repo publico&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git fetch origin
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ITGcMMDX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4mi26bkw0mm8rjjozfqm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ITGcMMDX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4mi26bkw0mm8rjjozfqm.png" alt="Image description" width="743" height="237"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ahora lo que sigue es combinar esos cambios con nuestro proyecto actual local(nuestro main como lo indica la rama en verde).&lt;br&gt;
Para esto  usamos &lt;em&gt;merge&lt;/em&gt;,indicamos origin/main pues este es el repo desde donde se estan trayendo los cambios que se agregaran a nuestro main.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git merge origin/main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0ftg0eLx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/srsvv2dpwkebdvcp2slf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0ftg0eLx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/srsvv2dpwkebdvcp2slf.png" alt="Image description" width="756" height="240"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Podemos observar que justo al mandar el comando se agrega la actualización del repositorio publico&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--chYvbsIY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4gzy68xszhzle1qknsa6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--chYvbsIY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4gzy68xszhzle1qknsa6.png" alt="Image description" width="310" height="143"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  7.SUBIENDO LOS NUEVOS CAMBIOS A NUESTRO PROYECTO CLON PRIVADO
&lt;/h2&gt;

&lt;p&gt;Este seria el último paso ,ahora que agregamos la actualización solo nos queda enviar los cambios a nuestro repositorio privado.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git push clonigin main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HWfC1WoM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gz2rwlu8jtyazmov9sxp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HWfC1WoM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gz2rwlu8jtyazmov9sxp.png" alt="Image description" width="880" height="371"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finalmente podemos eliminar de vuelta el remoto "origin" para no tener confusiones.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Esquema &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QDbLziuw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/85wbru4ov8e6fow5b9gj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QDbLziuw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/85wbru4ov8e6fow5b9gj.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
    </item>
  </channel>
</rss>
