{"id":3912,"date":"2026-10-21T08:00:02","date_gmt":"2026-10-21T06:00:02","guid":{"rendered":"https:\/\/www.nicalia.com\/blog\/?p=3912"},"modified":"2026-10-15T16:25:16","modified_gmt":"2026-10-15T14:25:16","slug":"desplegar-git-hosting-compartido","status":"publish","type":"post","link":"https:\/\/www.nicalia.com\/blog\/desplegar-git-hosting-compartido\/","title":{"rendered":"Desplegar con Git en un hosting compartido, sin VPS"},"content":{"rendered":"<p>Usas Git en local desde hace a\u00f1os y, cuando toca subir los cambios a la web, abres el cliente FTP y arrastras carpetas a mano. Git ya lo sabes usar. Lo que suele faltar es tener claro qu\u00e9 se puede montar en un hosting compartido, porque casi todas las gu\u00edas de despliegue dan por hecho que tienes un VPS con root, Docker o una plataforma de CI\/CD de pago.<\/p>\n<p>Tres formas que funcionan en un compartido con cPanel, desde la que no pide abrir la terminal hasta la que despliega sola, y el fallo de seguridad que m\u00e1s se repite al montarlas.<\/p>\n<p><!--more--><\/p>\n<h2>Para qui\u00e9n es esto y para qui\u00e9n no<\/h2>\n<p>Si tocas tu web una vez al mes y eres el \u00fanico que lo hace, el FTP te vale. Montar un flujo de despliegue para eso es matar moscas a ca\u00f1onazos y vas a dedicarle m\u00e1s tiempo del que te ahorra.<\/p>\n<p>Empieza a compensar cuando os pis\u00e1is cambios porque sois dos o m\u00e1s tocando el mismo c\u00f3digo, cuando tienes una web de pruebas y quieres que a producci\u00f3n llegue justo lo que probaste, o cuando despliegas cada semana y alguna vez ya has subido el archivo que no era. A partir de ah\u00ed, el d\u00eda que algo se rompe sabes qu\u00e9 cambi\u00f3 y qui\u00e9n lo cambi\u00f3, y vuelves a la versi\u00f3n anterior con un comando.<\/p>\n<h2>Qu\u00e9 puedes y qu\u00e9 no puedes hacer en un compartido<\/h2>\n<p>Antes de elegir m\u00e9todo conviene saber con qu\u00e9 cuentas, y <span style=\"text-decoration: underline;\"><em>esto es lo que te vas a encontrar en la mayor\u00eda de hostings compartidos<\/em><\/span> con cPanel:<\/p>\n<div class=\"tabla\">\n<table style=\"height: 192px;\" width=\"704\">\n<caption>Lo que necesitas para desplegar con Git y si lo tienes en un compartido<\/caption>\n<thead>\n<tr>\n<th>Necesitas<\/th>\n<th>\u00bfLo tienes en un compartido?<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Acceso SSH<\/td>\n<td>A veces: depende del proveedor y del plan<\/td>\n<\/tr>\n<tr>\n<td>Git Version Control de cPanel<\/td>\n<td>S\u00ed, si tu proveedor lo deja activado<\/td>\n<\/tr>\n<tr>\n<td>Tareas programadas (cron)<\/td>\n<td>S\u00ed<\/td>\n<\/tr>\n<tr>\n<td>root, systemd, Docker<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td>Compilar assets en el servidor (Node)<\/td>\n<td>Depende: muchos no traen Node<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>La \u00faltima fila importa m\u00e1s de lo que parece. Aunque tu hosting tenga Node, compilar con Vite o Webpack en un compartido es mala idea, porque el proceso tira de CPU y memoria un buen rato y los l\u00edmites de la cuenta lo cortan o lo eternizan. Compila en tu ordenador o en GitHub Actions y despliega el resultado ya compilado.<\/p>\n<blockquote><p><em>En Nicalia todos los planes compartidos incluyen SSH, cron y Git Version Control. Si en tu cPanel no aparece la Terminal, abre un tique y te la activamos. Tienes las formas de conectarte en <a href=\"https:\/\/www.nicalia.com\/nicapedia\/acceder-mediante-ssh-a-un-usuario\/\">c\u00f3mo acceder mediante SSH a tu hosting<\/a>.<\/em><\/p><\/blockquote>\n<h2>M\u00e9todo 1: Git Version Control de cPanel, sin tocar la terminal<\/h2>\n<p>Es la ruta que puede seguir m\u00e1s gente porque todo se hace desde el navegador. cPanel guarda una copia del repositorio en tu cuenta, fuera de la carpeta p\u00fablica, y al pulsar un bot\u00f3n copia a la web los archivos que t\u00fa le indiques.<\/p>\n<p>Ojo con un detalle: sin acceso shell, cPanel solo te deja crear, clonar, ver y borrar repositorios. Para desplegar, tu cuenta necesita tener el shell activado aunque t\u00fa no abras la terminal nunca.<\/p>\n<h3>Clona el repositorio desde la interfaz<\/h3>\n<p>Ve a cPanel \u2192 Archivos \u2192 Git\u2122 Version Control y pulsa <strong>Crear<\/strong>. Activa \u00abClonar un repositorio\u00bb, pega la URL de clonaci\u00f3n y, en la ruta, pon una carpeta fuera de <code>public_html<\/code>, por ejemplo <code>repositorios\/miweb<\/code>. Si el repositorio es privado, antes tienes que darle al servidor una clave con permiso de lectura, y eso lo tienes paso a paso en <a href=\"https:\/\/www.nicalia.com\/nicapedia\/guias\/desarrollo-web\/guia-de-git\/guia-de-git-configurar-el-acceso-a-repositorios-privados\/\">c\u00f3mo configurar el acceso SSH a repositorios privados<\/a>.<\/p>\n<h3>Dile qu\u00e9 copiar con .cpanel.yml<\/h3>\n<p>cPanel no despliega nada si en la ra\u00edz del repositorio no hay un archivo <code>.cpanel.yml<\/code>, que es una lista de comandos que se ejecutan en orden. Para un tema de WordPress quedar\u00eda as\u00ed:<\/p>\n<pre><code>---\r\ndeployment:\r\n  tasks:\r\n    - export DEPLOYPATH=\/home\/usuario\/public_html\/wp-content\/themes\/mi-tema\/\r\n    - \/bin\/mkdir -p $DEPLOYPATH\r\n    - \/bin\/cp -R wp-content\/themes\/mi-tema\/. $DEPLOYPATH<\/code><\/pre>\n<p>Cambia <code>usuario<\/code> y <code>mi-tema<\/code> por los tuyos. Usa rutas absolutas y comandos con su ruta completa (<code>\/bin\/cp<\/code>), y no copies la ra\u00edz del repositorio con un comod\u00edn, porque te llevar\u00edas la carpeta <code>.git<\/code> a la web. Adem\u00e1s <code>cp<\/code> no borra: si eliminas un archivo del repositorio, en el servidor sigue ah\u00ed hasta que lo quites t\u00fa.<\/p>\n<p>Sube el <code>.cpanel.yml<\/code> al repositorio de origen y no lo crees en la copia del servidor, porque si esa copia tiene cambios sin confirmar cPanel no despliega.<\/p>\n<h3>Despliega con un bot\u00f3n<\/h3>\n<p>Cada vez que quieras publicar, entra en <strong>Gestionar<\/strong>, abre la pesta\u00f1a <strong>Extraer o desplegar<\/strong> y pulsa \u00abActualizar desde remoto\u00bb para traer los cambios. Despu\u00e9s, \u00abDesplegar commit HEAD\u00bb los copia a la web.<\/p>\n<h3>Sus l\u00edmites<\/h3>\n<ul>\n<li><strong>No despliega solo.<\/strong> Hacer push a GitHub no cambia nada en tu web hasta que alguien pulsa los dos botones.<\/li>\n<li><strong>Solo avanza en l\u00ednea recta.<\/strong> \u00abActualizar desde remoto\u00bb usa <code>--ff-only<\/code>, as\u00ed que tras un push forzado falla y toca resolverlo a mano.<\/li>\n<\/ul>\n<p>Si tienes SSH, cPanel admite tambi\u00e9n el camino contrario: haces push directamente al repositorio de tu cuenta y despliega en el momento. Tienes los dos modos explicados en <a href=\"https:\/\/www.nicalia.com\/nicapedia\/guias\/desarrollo-web\/guia-de-git\/guia-de-git-configurar-la-implementacion\/\">configurar el despliegue en cPanel<\/a>, y todas las opciones de la herramienta en la <a href=\"https:\/\/www.nicalia.com\/nicapedia\/guias\/cpanel\/archivos\/gestion-de-control-de-versiones-git-en-cpanel\/\">gu\u00eda de control de versiones Git en cPanel<\/a>.<\/p>\n<h2>M\u00e9todo 2: repositorio bare con hook post-receive<\/h2>\n<p>El cl\u00e1sico, y el m\u00e1s elegante. Cuando lo tienes montado, publicar se reduce a esto:<\/p>\n<pre><code>git push produccion main<\/code><\/pre>\n<p>Necesitas SSH. Si no lo tienes, qu\u00e9date con el m\u00e9todo 1.<\/p>\n<h3>El repositorio va fuera de la carpeta p\u00fablica<\/h3>\n<p>Un repositorio bare guarda solo el historial, sin archivos de trabajo. Lo creas en tu cuenta, fuera de <code>public_html<\/code>, para que nada de \u00e9l se pueda pedir desde un navegador:<\/p>\n<pre><code>mkdir -p ~\/repos\/miweb.git\r\ncd ~\/repos\/miweb.git\r\ngit init --bare<\/code><\/pre>\n<h3>El hook que publica<\/h3>\n<p>Git ejecuta el archivo <code>hooks\/post-receive<\/code> cada vez que recibe un push. Crea <code>~\/repos\/miweb.git\/hooks\/post-receive<\/code> con este contenido:<\/p>\n<pre><code>#!\/bin\/sh\r\nDESTINO=\"$HOME\/public_html\"\r\nREPO=\"$HOME\/repos\/miweb.git\"\r\nRAMA=\"main\"\r\n\r\nwhile read antiguo nuevo ref; do\r\n  if [ \"$ref\" = \"refs\/heads\/$RAMA\" ]; then\r\n    git --work-tree=\"$DESTINO\" --git-dir=\"$REPO\" checkout -f \"$RAMA\"\r\n    echo \"Desplegado $RAMA en $DESTINO\"\r\n  fi\r\ndone<\/code><\/pre>\n<p>Dale permisos de ejecuci\u00f3n con <code>chmod +x ~\/repos\/miweb.git\/hooks\/post-receive<\/code>. El checkout solo toca los archivos que controla Git, as\u00ed que <code>wp-config.php<\/code> y las im\u00e1genes subidas se quedan como estaban, y si borras un archivo del repositorio tambi\u00e9n desaparece del servidor en el siguiente push.<\/p>\n<p>En tu ordenador a\u00f1ades el servidor como remoto. El puerto SSH lo tienes en cPanel \u2192 Informaci\u00f3n general:<\/p>\n<pre><code>git remote add produccion ssh:\/\/usuario@tudominio.com:PUERTO\/home\/usuario\/repos\/miweb.git<\/code><\/pre>\n<h3>Qu\u00e9 pasa cuando el despliegue falla a medias<\/h3>\n<p>El checkout no es at\u00f3mico. Si se corta a mitad porque te quedas sin cuota de disco o hay un archivo con permisos raros, la web se queda con unos archivos nuevos y otros viejos, y el push aparece como completado porque el historial ya lleg\u00f3 al servidor. Por eso conviene leer lo que devuelve la terminal tras cada push, donde las l\u00edneas que empiezan por <code>remote:<\/code> son la salida del hook.<\/p>\n<p>Si ves un error, corrige la causa y lanza a mano el mismo checkout del hook:<\/p>\n<pre><code>git --work-tree=\"$HOME\/public_html\" --git-dir=\"$HOME\/repos\/miweb.git\" checkout -f main<\/code><\/pre>\n<p>Y si lo que falla es el c\u00f3digo, haz <code>git revert<\/code> del commit en local y vuelve a hacer push. Es mucho m\u00e1s limpio que tocar archivos en el servidor.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/www.nicalia.com\/blog\/wp-content\/uploads\/2026\/10\/nicalia-git-compartido-01.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-large wp-image-3917\" src=\"https:\/\/www.nicalia.com\/blog\/wp-content\/uploads\/2026\/10\/nicalia-git-compartido-01-1024x572.jpg\" alt=\"Desplegar con Git en un hosting compartido, sin VPS\" width=\"1024\" height=\"572\" srcset=\"https:\/\/www.nicalia.com\/blog\/wp-content\/uploads\/2026\/10\/nicalia-git-compartido-01-1024x572.jpg 1024w, https:\/\/www.nicalia.com\/blog\/wp-content\/uploads\/2026\/10\/nicalia-git-compartido-01-300x168.jpg 300w, https:\/\/www.nicalia.com\/blog\/wp-content\/uploads\/2026\/10\/nicalia-git-compartido-01-768x429.jpg 768w, https:\/\/www.nicalia.com\/blog\/wp-content\/uploads\/2026\/10\/nicalia-git-compartido-01.jpg 1200w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" title=\"\"><\/a><\/p>\n<h2>M\u00e9todo 3: GitHub Actions desplegando por SSH<\/h2>\n<p>Si el repositorio vive en GitHub y quieres que la web se actualice sola cada vez que se hace merge a <code>main<\/code>, deja que GitHub haga el trabajo. Arranca una m\u00e1quina, compila si hace falta y copia el resultado a tu hosting por SSH.<\/p>\n<h3>Una clave solo para desplegar<\/h3>\n<p>Genera un par de claves nuevo para esto y no reutilices la tuya personal. Si un d\u00eda se filtra, revocas esa y tu acceso sigue intacto.<\/p>\n<pre><code>ssh-keygen -t ed25519 -f deploy_github -N \"\" -C \"github-actions\"<\/code><\/pre>\n<p>La parte p\u00fablica (<code>deploy_github.pub<\/code>) la importas en cPanel \u2192 Acceso SSH \u2192 Administrar claves SSH \u2192 Importar clave, y despu\u00e9s la autorizas. La privada no se sube al repositorio nunca. Si adem\u00e1s tu servidor tiene que leer repositorios privados, el proceso con claves dedicadas lo tienes en <a href=\"https:\/\/www.nicalia.com\/nicapedia\/guias\/desarrollo-web\/guia-de-git\/guia-de-git-configurar-el-acceso-a-repositorios-privados\/\">configurar el acceso a repositorios privados<\/a>.<\/p>\n<h3>D\u00f3nde van los secretos<\/h3>\n<p>En GitHub, dentro del repositorio: Settings \u2192 Secrets and variables \u2192 Actions \u2192 New repository secret. Crea cinco:<\/p>\n<ul>\n<li><code>SSH_KEY<\/code>: el contenido completo de la clave privada.<\/li>\n<li><code>SSH_HOST<\/code>, <code>SSH_PORT<\/code> y <code>SSH_USER<\/code>: tu dominio o la IP del servidor, el puerto SSH y tu usuario de cPanel.<\/li>\n<li><code>SSH_KNOWN_HOSTS<\/code>: lo que devuelve <code>ssh-keyscan -p PUERTO tudominio.com<\/code> en tu ordenador, para que la conexi\u00f3n verifique el servidor.<\/li>\n<\/ul>\n<p>Y el flujo de trabajo, en <code>.github\/workflows\/desplegar.yml<\/code>:<\/p>\n<pre><code>name: Desplegar\r\non:\r\n  push:\r\n    branches: [main]\r\n\r\njobs:\r\n  desplegar:\r\n    runs-on: ubuntu-latest\r\n    steps:\r\n      - uses: actions\/checkout@v4\r\n\r\n      # Si compilas assets, este es el sitio:\r\n      # - run: npm ci &amp;&amp; npm run build\r\n\r\n      - name: Preparar la clave SSH\r\n        run: |\r\n          mkdir -p ~\/.ssh\r\n          echo \"${{ secrets.SSH_KEY }}\" &gt; ~\/.ssh\/deploy_key\r\n          chmod 600 ~\/.ssh\/deploy_key\r\n          echo \"${{ secrets.SSH_KNOWN_HOSTS }}\" &gt; ~\/.ssh\/known_hosts\r\n\r\n      - name: Copiar el tema al servidor\r\n        run: |\r\n          rsync -az --delete \\\r\n            -e \"ssh -i ~\/.ssh\/deploy_key -p ${{ secrets.SSH_PORT }}\" \\\r\n            wp-content\/themes\/mi-tema\/ \\\r\n            ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:public_html\/wp-content\/themes\/mi-tema\/<\/code><\/pre>\n<h3>rsync con &#8211;delete, y por qu\u00e9 esa bandera da miedo<\/h3>\n<p><code>--delete<\/code> borra en el servidor todo lo que no est\u00e9 en lo que env\u00edas. Es justo lo que quieres para que no se queden archivos hu\u00e9rfanos, y tambi\u00e9n la forma m\u00e1s r\u00e1pida de cargarte una web. Si el destino fuera <code>public_html<\/code> y en el repositorio no est\u00e1 <code>wp-content\/uploads<\/code>, rsync borrar\u00eda la biblioteca de medios entera sin preguntar.<\/p>\n<p>Apunta siempre a la carpeta m\u00e1s concreta que puedas (el tema, no la ra\u00edz) y la primera vez a\u00f1ade <code>--dry-run<\/code>, que lista lo que har\u00eda sin tocar nada.<\/p>\n<h2>El agujero de seguridad que casi nadie cierra<\/h2>\n<p>Si clonas un repositorio dentro de la carpeta p\u00fablica y el servidor no bloquea el acceso, cualquiera puede abrir <code>https:\/\/tudominio.com\/.git\/<\/code> y reconstruir tu repositorio con herramientas que circulan desde hace a\u00f1os. Con todo el historial, incluida la contrase\u00f1a de la base de datos que alguien subi\u00f3 hace dos a\u00f1os y borr\u00f3 en el commit siguiente, porque borrar un archivo en un commit nuevo no lo quita de los anteriores.<\/p>\n<p>cPanel protege los repositorios que creas desde Git Version Control. Los que clonas a mano por SSH dentro de <code>public_html<\/code>, que es lo que ense\u00f1an muchos tutoriales, no tienen por qu\u00e9 estar protegidos.<\/p>\n<h3>Compru\u00e9balo en treinta segundos<\/h3>\n<p>Abre en el navegador <code>https:\/\/tudominio.com\/.git\/HEAD<\/code>. Si ves una l\u00ednea del tipo <code>ref: refs\/heads\/main<\/code>, tu repositorio est\u00e1 a la vista de todo el mundo. Si te devuelve un error 403 o 404, bien. Repite la prueba en cada subcarpeta donde hayas clonado algo.<\/p>\n<h3>La regla de .htaccess que lo bloquea<\/h3>\n<p>A\u00f1ade esto al principio del <code>.htaccess<\/code> de <code>public_html<\/code>:<\/p>\n<pre><code>RewriteEngine On\r\nRewriteRule (^|\/)\\.git - [F,L]<\/code><\/pre>\n<p>Devuelve un 403 a cualquier ruta que pase por <code>.git<\/code>, est\u00e9 en la carpeta que est\u00e9, y funciona tanto en Apache como en LiteSpeed.<\/p>\n<h3>La soluci\u00f3n buena es no clonar en la carpeta p\u00fablica<\/h3>\n<p>La regla es un parche. Lo que de verdad lo arregla es que el repositorio viva fuera de <code>public_html<\/code>, como en los tres m\u00e9todos de arriba, y que a la web solo lleguen los archivos que tienen que estar ah\u00ed. Y si alguna vez se subi\u00f3 una contrase\u00f1a al repositorio, c\u00e1mbiala, porque limpiar el historial no sirve de nada si alguien ya lo descarg\u00f3.<\/p>\n<h2>El caso WordPress: qu\u00e9 se versiona y qu\u00e9 no<\/h2>\n<p>La regla es sencilla: al repositorio va lo que escribes t\u00fa. Lo que genera WordPress, lo que suben los usuarios y lo que actualizas desde el escritorio se queda fuera.<\/p>\n<div class=\"tabla\">\n<table>\n<caption>Qu\u00e9 va al repositorio en un proyecto WordPress<\/caption>\n<thead>\n<tr>\n<th>Va al repositorio<\/th>\n<th>No va<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>El tema y los plugins que desarrollas t\u00fa<\/td>\n<td><code>wp-config.php<\/code> y las credenciales de la base de datos<\/td>\n<\/tr>\n<tr>\n<td><code>composer.json<\/code> y <code>composer.lock<\/code>, si usas Composer<\/td>\n<td><code>wp-content\/uploads\/<\/code>, la biblioteca de medios<\/td>\n<\/tr>\n<tr>\n<td>El <code>.gitignore<\/code> (y el <code>.cpanel.yml<\/code> si usas el m\u00e9todo 1)<\/td>\n<td>El n\u00facleo de WordPress y los plugins de terceros<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>Este <code>.gitignore<\/code> est\u00e1 pensado para un repositorio con la misma estructura que la instalaci\u00f3n de WordPress. Ignora todo y deja pasar solo lo tuyo, as\u00ed que cambia <code>mi-tema<\/code> y <code>mi-plugin<\/code> por tus carpetas:<\/p>\n<pre><code># Todo fuera por defecto\r\n\/*\r\n\r\n# Lo que s\u00ed entra\r\n!.gitignore\r\n!.cpanel.yml\r\n!composer.json\r\n!composer.lock\r\n\r\n!wp-content\/\r\nwp-content\/*\r\n\r\n!wp-content\/themes\/\r\nwp-content\/themes\/*\r\n!wp-content\/themes\/mi-tema\/\r\n\r\n!wp-content\/plugins\/\r\nwp-content\/plugins\/*\r\n!wp-content\/plugins\/mi-plugin\/<\/code><\/pre>\n<blockquote><p>La base de datos no se despliega con Git. Entradas, p\u00e1ginas, men\u00fas, widgets y los ajustes de casi todos los plugins viven en la base de datos, y Git solo mueve archivos.<\/p><\/blockquote>\n<p>Es el error de concepto m\u00e1s com\u00fan. Si cambias un men\u00fa en la web de pruebas, ese cambio no viaja con el push, y para llevarlo a producci\u00f3n tienes que <a href=\"https:\/\/www.nicalia.com\/nicapedia\/importar-exportar-base-de-datos-a-traves-de-linea-de-comandos\/\">exportar e importar la base de datos<\/a> o repetir el cambio a mano. Ojo con importar encima de producci\u00f3n, porque te llevas por delante los pedidos, comentarios o registros que hayan entrado mientras tanto.<\/p>\n<h2>Si tu hosting no te da ni SSH ni Git<\/h2>\n<p>Si tu cPanel no tiene Git Version Control y tu proveedor no te da SSH ni pagando m\u00e1s, no hay truco que valga y te toca seguir con el FTP. Es una limitaci\u00f3n real de algunos planes baratos, y si trabajas con m\u00e1s gente o despliegas a menudo, es motivo suficiente para cambiar.<\/p>\n<p>Todos nuestros planes de <a href=\"https:\/\/www.nicalia.com\/hosting\/nvme\">hosting NVMe<\/a> incluyen Git Version Control, SSH, cron y WP-CLI. Si vienes de otro proveedor con cPanel, <a href=\"https:\/\/www.nicalia.com\/migraciones\">la migraci\u00f3n es gratuita<\/a> si la pides en los 30 d\u00edas siguientes a contratar, y nos encargamos de la web, el correo, las bases de datos y las tareas cron.<\/p>\n<h2>Preguntas r\u00e1pidas<\/h2>\n<h3>\u00bfNecesito usar la terminal para desplegar con Git en cPanel?<\/h3>\n<p>No. Con Git Version Control clonas y despliegas desde el navegador, aunque tu cuenta necesita tener el acceso shell activado.<\/p>\n<h3>\u00bfSe puede desplegar autom\u00e1ticamente al hacer push en un hosting compartido?<\/h3>\n<p>S\u00ed, si tienes SSH: con un hook post-receive en tu cuenta o con GitHub Actions copiando por SSH.<\/p>\n<h3>\u00bfGit despliega tambi\u00e9n la base de datos de WordPress?<\/h3>\n<p>No. Git solo mueve archivos, y entradas, men\u00fas y ajustes viven en la base de datos.<\/p>\n<h3>\u00bfEs peligroso tener la carpeta .git dentro de public_html?<\/h3>\n<p>S\u00ed, si el servidor no bloquea el acceso, porque cualquiera podr\u00eda descargar el repositorio con todo su historial.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Usas Git en local desde hace a\u00f1os y, cuando toca subir los cambios a la web, abres el cliente FTP y arrastras carpetas a mano. [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":3916,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[98,95,97],"tags":[],"_links":{"self":[{"href":"https:\/\/www.nicalia.com\/blog\/wp-json\/wp\/v2\/posts\/3912"}],"collection":[{"href":"https:\/\/www.nicalia.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.nicalia.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.nicalia.com\/blog\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.nicalia.com\/blog\/wp-json\/wp\/v2\/comments?post=3912"}],"version-history":[{"count":4,"href":"https:\/\/www.nicalia.com\/blog\/wp-json\/wp\/v2\/posts\/3912\/revisions"}],"predecessor-version":[{"id":3918,"href":"https:\/\/www.nicalia.com\/blog\/wp-json\/wp\/v2\/posts\/3912\/revisions\/3918"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.nicalia.com\/blog\/wp-json\/wp\/v2\/media\/3916"}],"wp:attachment":[{"href":"https:\/\/www.nicalia.com\/blog\/wp-json\/wp\/v2\/media?parent=3912"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.nicalia.com\/blog\/wp-json\/wp\/v2\/categories?post=3912"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.nicalia.com\/blog\/wp-json\/wp\/v2\/tags?post=3912"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}