206 lines
10 KiB
HTML
206 lines
10 KiB
HTML
<!-- 32 -->
|
|
<!-- <div class="img zoomable">
|
|
<img src="/static/source_imgs/git/pst_2/git.webp" alt="" style="height: 300px; width: auto;">
|
|
</div> -->
|
|
<p>
|
|
Para poder subir cambios o descargar <a class="link" data-bs-toggle="modal"
|
|
data-bs-target="#repositorio">repositorios</a> de nuestro servidor de control de versiones con <a class="link"
|
|
data-bs-toggle="modal" data-bs-target="#git">Git</a> (No host GitHub)
|
|
debemos primero haber creador el repositorio en nuestro servidor, para ello checa primero esa nota.
|
|
</p>
|
|
<p>
|
|
Una vez creado el repositorio en nuestro servidor en nuestra maquina local podrémos hacer las siguientes
|
|
procedimientos:
|
|
</p>
|
|
<ul class="nav nav-tabs" id="tab-dix" role="tablist">
|
|
<li class="nav-item">
|
|
<a class="nav-link active" id="tab1-tab" data-toggle="tab" href="#tab1" role="tab" aria-controls="tab1"
|
|
aria-selected="true"><i class="bi bi-git"></i> Vincular </a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link" id="tab2-tab" data-toggle="tab" href="#tab2" role="tab" aria-controls="tab2"
|
|
aria-selected="false"><i class="fa-solid fa-link-slash"></i> Desvincular</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link" id="tab3-tab" data-toggle="tab" href="#tab3" role="tab" aria-controls="tab3"
|
|
aria-selected="false"><i class="bi bi-copy"></i> Clonar</a>
|
|
</li>
|
|
</ul>
|
|
<div class="tab-content" id="myTabContent">
|
|
<div class="tab-pane fade active show" id="tab1" role="tabpanel" aria-labelledby="tab1-tab">
|
|
<!-- {# i nav 1 #} -->
|
|
<div>
|
|
<p>
|
|
Imaginemos que vamos a crear un nuevo proyecto llamado <i>new_project</i>, por lo tanto creamos la carpeta:
|
|
</p>
|
|
<pre><i class="bi bi-copy"> Copiar código</i>
|
|
<code contenteditable="true" class="code_lightMode">mkdir new_project; cd new_project</code></pre>
|
|
<p>
|
|
Una vez dentro de la carpeta de nuestro nuevo proyecto debemos inicializar un repositorio Git:
|
|
</p>
|
|
<pre><i class="bi bi-copy"> Copiar código</i>
|
|
<code class="code_lightMode"># iniciar un entorno de git
|
|
git init .
|
|
</code></pre>
|
|
<p>
|
|
Para vincular la carpeta del proyecto a nuestro servidor debemos ejecutar los siguientes comandos:
|
|
</p>
|
|
<pre><i class="bi bi-copy"> Copiar código</i>
|
|
<code contenteditable="true" class="code_lightMode"># vincular el proyecto a repositorio.
|
|
git remote add origin nombre_usuario@ip_servidor_o_dns:/ruta/carpeta/repositorio/en/servidor
|
|
# ejemplo: git remote add origin dave@192.162.1.18:/home/gitserver/repos/new_project
|
|
</code></pre>
|
|
<p>
|
|
El comando <b><i>git remote add origin</i></b> vincula nuestro proyecto local a un repositorio remoto. El alias
|
|
<b><i>origin</i></b> se usa para
|
|
referirse a este repositorio en comandos futuros como <i>git push</i> o <i>git pull</i>.
|
|
</p>
|
|
<p>
|
|
El comando anterior debe funcionar tanto en redes locales como externas. Para conexiones externas, asegúrate de
|
|
abrir y
|
|
redirigir el <a class="link" data-bs-toggle="modal" data-bs-target="#puerto">puerto</a> <a class="link"
|
|
data-bs-toggle="modal" data-bs-target="#ssh">SSH</a> (22) en tu router hacia la <a class="link"
|
|
data-bs-toggle="modal" data-bs-target="#ip">IP</a> del servidor. Si tienes una IP dinámica, considera usar
|
|
servicios
|
|
como <a href="https://www.duckdns.org/" target="_blank">DuckDNS</a>.
|
|
</p>
|
|
<p>
|
|
Cabe mencionar que no es recomendable aperturar el puerto 22 de tu tu router ISP, pero en caso de que así lo
|
|
desees esos son
|
|
los pasos a seguir, lo más recomendable es usar una <a class="link" data-bs-toggle="modal"
|
|
data-bs-target="#vpn">VPN</a> como wireguard y ya sea que tu hagas la instalación o
|
|
compres un router que
|
|
sea compatible con algunas VPN.
|
|
</p>
|
|
<p>
|
|
En caso de que hayas cambiado el puerto por defecto de escucha que es el 22 debes cambiar el comando de
|
|
vinculación a tu proyecto y especificar el puerto, el comando
|
|
puede ser aplicado tanto para redes locales y externas.
|
|
</p>
|
|
<pre><i class="bi bi-copy"> Copiar código</i>
|
|
<code contenteditable="true" class="code_lightMode"># comando para puerto de escucha modificado
|
|
git remote add origin ssh://nombre_usuario@ip_publica_o_dns:puerto/ruta/carpeta/repositorio/en/servidor
|
|
# ejemplo: ssh://dave@ip-casa-dns-sample.duckddns.org:2200/home/gitserver/repos/new_project
|
|
</code></pre>
|
|
<p>
|
|
Una vez hecho todos los pasos anterior ya puedes continuar con tu proyecto sin importar en el lenguaje de
|
|
programación en que vayas a
|
|
trabajar, guardar cambios con <b><i>git add .</i></b>, guardar cambios <i><b>git commit -m "mensaje relacionado
|
|
a los cambios hechos"</b></i>
|
|
y subirlos a tu servidor <i><b>git push -u origin master</b></i>.
|
|
</p>
|
|
<p>
|
|
Adicional a lo anterior, tambien es importante que conozcas que puedes vincular un proyecto a más de un servidor
|
|
en caso de que quieras
|
|
redundancias para backups, para hacerlo el proceso es similar al anterior, ejemplo del comando:
|
|
</p>
|
|
<pre><i class="bi bi-copy"> Copiar código</i>
|
|
<code contenteditable="true" class="code_lightMode">git remote add server_1 dave1@192.168.16.10:/home/servergit1/new_project
|
|
git remote add server_2 dave2@192.168.16.11:/home/servergit2/new_project
|
|
</code></pre>
|
|
<p>
|
|
Para hacer el envio de cambios es importante que hagas push por cada servidor, en este caso serían dos push,
|
|
ejemplo:
|
|
</p>
|
|
<pre><i class="bi bi-copy"> Copiar código</i>
|
|
<code contenteditable="true" class="code_lightMode"># Para enviar a servidor_1
|
|
git push server_1 master
|
|
|
|
# Para enviar a servidor_2
|
|
git push server_2 master
|
|
</code></pre>
|
|
|
|
</div>
|
|
<!-- {# f nav 1 #} -->
|
|
</div>
|
|
<div class="tab-pane fade" id="tab2" role="tabpanel" aria-labelledby="tab2-tab">
|
|
<!-- {# i nav 2 #} -->
|
|
<div>
|
|
<p>
|
|
Si deseas desvincular el repositorio remoto configurado en tu máquina local, el procedimiento es muy sencillo.
|
|
Primero, verifica las conexiones actuales de tu repositorio mediante el siguiente comando:
|
|
</p>
|
|
<pre><i class="bi bi-copy"> Copiar código</i>
|
|
<code class="code_lightMode"># Listar los remotos configurados en el repositorio local
|
|
git remote -v
|
|
</code>
|
|
</pre>
|
|
<p>
|
|
Este comando muestra las URL de los remotos configurados para operaciones de <i>fetch</i> (descarga) y
|
|
<i>push</i> (envío).
|
|
La salida será similar a la siguiente:
|
|
</p>
|
|
<pre><code>$ git remote -v
|
|
origin dave@dns_server_git:/home/gitserver/repo/new_project (fetch)
|
|
origin dave@dns_server_git:/home/gitserver/repo/new_project (push)
|
|
</code></pre>
|
|
<p>
|
|
Alternativamente, puedes usar el comando <code>git remote show origin</code> para obtener información más
|
|
detallada
|
|
sobre la configuración del remoto llamado <code>origin</code>, incluyendo su URL y el estado actual de las
|
|
conexiones.
|
|
</p>
|
|
<p>
|
|
Una vez que hayas identificado el remoto que deseas eliminar, puedes desvincularlo usando el siguiente comando:
|
|
</p>
|
|
<pre><i class="bi bi-copy"> Copiar código</i>
|
|
<code class="code_lightMode"># Eliminar un remoto llamado 'origin'
|
|
git remote remove origin
|
|
</code></pre>
|
|
<p>
|
|
Después de ejecutar este comando, el repositorio local ya no estará vinculado al remoto eliminado.
|
|
No podrás realizar operaciones como <code>git push</code> o <code>git pull</code> hasta que configures una nueva
|
|
vinculación.
|
|
Sin embargo, los cambios realizados en tu repositorio local permanecerán intactos.
|
|
</p>
|
|
<p>
|
|
Si tienes múltiples remotos configurados, como se menciona en la sección "Vincular", asegúrate de especificar
|
|
correctamente el nombre del remoto que deseas eliminar. Por ejemplo:
|
|
</p>
|
|
<pre><i class="bi bi-copy"> Copiar código</i>
|
|
<code class="code_lightMode"># Eliminar un remoto llamado 'server_1'
|
|
git remote remove server_1
|
|
</code></pre>
|
|
</div>
|
|
|
|
<!-- {# f nav 2 #} -->
|
|
</div>
|
|
<div class="tab-pane fade" id="tab3" role="tabpanel" aria-labelledby="tab3-tab">
|
|
<!-- {# i nav 3 #} -->
|
|
<div>
|
|
<p>
|
|
Clonar un repositorio es el proceso de crear una copia local de un repositorio remoto. Este procedimiento es
|
|
sencillo,
|
|
ya sea que trabajes en una red local o externa, siempre y cuando hayas realizado las configuraciones necesarias,
|
|
como
|
|
la apertura de puertos o la configuración de claves SSH.
|
|
</p>
|
|
<p>
|
|
Para clonar un repositorio utilizando el puerto SSH predeterminado (22), usa el siguiente comando:
|
|
</p>
|
|
<pre><i class="bi bi-copy"> Copiar código</i>
|
|
<code class="code_lightMode"># Clonar repositorio con puerto predeterminado (22)
|
|
git clone usuario@direccion_ip_servidor_o_dns:/ruta/carpeta/repositorio/en/servidor
|
|
# Ejemplo: git clone dave@192.168.11.31:/home/gitserver/repos/new_project
|
|
</code></pre>
|
|
<p>
|
|
Si tu servidor está configurado para usar un puerto SSH diferente, debes especificarlo en el comando.
|
|
A continuación, te mostramos el formato y un ejemplo:
|
|
</p>
|
|
<pre><i class="bi bi-copy"> Copiar código</i>
|
|
<code class="code_lightMode"># Clonar repositorio con puerto modificado
|
|
git clone ssh://usuario@direccion_ip_servidor_o_dns:puerto/ruta/carpeta/repositorio/en/servidor
|
|
# Ejemplo: git clone ssh://dave@192.168.11.31:2200/home/gitserver/repos/new_project
|
|
</code></pre>
|
|
<p>
|
|
<b>En caso de que no tengas una llave SSH te solicitará autenticación, solo ingresa la contraseña y podrás
|
|
clonar el repositorio,
|
|
puedes consultar mi nota de como crear una llave SSH.</b>
|
|
</p>
|
|
</div>
|
|
<!-- {# f nav 3 #} -->
|
|
</div>
|
|
</div>
|
|
|
|
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
|
|
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script> |