git: ¿un repositorio remoto, por así decirlo?

CorePress2024-01-25  11

¿Es posible configurar un repositorio remoto en uno de mis servidores de modo que cualquier cambio que haga en los archivos de mi git se envíe inmediatamente a mi máquina local? Básicamente, me gustaría el comportamiento de un repositorio local pero con los archivos en un servidor remoto.

Aún puedes usar git para extraer y enviar cambios desde/hacia cualquiera de tus repositorios git alojados en cualquier servidor. El documento oficial explica las posibilidades en detalle.

- Asif Kamran Malick

Mamá27/2021 a las 21:52

Lo sé, pero quiero ver los cambios en vivo (no confirmados y demás).

- Tony Friz

27/03/2021 a las 23:10

Quiero ver los cambios en vivo (no confirmados y demás). edite la pregunta para explicar por qué: ¿cuál es el caso de uso aquí?

- AD7six

28/03/2021 a las 14:58

------------------------------

En realidad, aquí sólo hay tres posibilidades:

La computadora L (su máquina local, por ejemplo, su computadora portátil) no tiene ningún archivo. La computadora R (la remota) tiene todos los archivos. Entonces, todo lo que hagas en R aparecerá inmediatamente en L.

La computadora L tiene archivos, pero algo los está sincronizando, por ejemplo, Dropbox o similar. Entonces, todo lo que hagas en R aparecerá en L, más tarde. Exactamente cuánto tiempo después es un misterio, excepto hasta qué punto el software de sincronización que utilice se puede consultar o ajustar.

Las computadoras L y R tienen cada una sus propios archivos separados. Los cambios realizados en R no tienen efecto en L y viceversa.

Puede que te sientas tentado a utilizar el del medio de estos tres. Si elige hacer eso, no involucre a Git. Git es veEs muy delicado con respecto a exactamente qué archivos se actualizan, cuándo y mediante qué comando: necesita que sus propios archivos especiales sean actualizados sólo por el propio Git y sólo de una manera prescrita. Dejar que otro software toque estos archivos interferirá con el funcionamiento de Git. No es técnicamente imposible hacer que esto funcione, pero es muy complicado y requiere mucho cuidado para saber si todo está sincronizado. pruebas antes de hacer algo significativo.

El tercero de estos tres es la forma en que Git debe funcionar: cada computadora tiene su propio repositorio de Git, con sus propias confirmaciones y sus propias ramas. Los dos Gits pueden llamarse entre sí. Por lo general, su computadora portátil L llama al servidor remoto R, ya que el servicio remoto requiere autenticación, que Git no proporciona y que es un asunto complejo ya queImplica seguridad: contraseñas, acceso con clave, cifrado de clave pública/privada, cuadernos de un solo uso, pruebas de conocimiento cero y/u otros métodos para demostrar de forma segura que usted es realmente usted y no alguien más que simplemente dice ser usted.

De todos modos, una vez que un Git haya llamado al otro a través de Internet y haya demostrado a quién representa, los dos Git ahora pueden tener una conversación. Se podría decir, en efecto, tengo el compromiso X. La respuesta es: oh, oye, no tengo el compromiso X, dámelo o ya tengo el compromiso X. Este intercambio funciona según los ID de hash del compromiso. que son esos grandes y feos números hexadecimales que ves en la salida del registro de git: cada confirmación obtiene un número único como su ID de hash.

Habiendo intercambiado confirmaciones: si usas git fetch obtendrás confirmaciones de ellos, y si usas git push yoles das compromisos: tu Git y su Git ahora pueden tener los mismos compromisos, dependiendo de quién tuvo más compromisos que el otro. (A veces es posible que necesites usar ambas funciones, buscar y enviar, para lograr una sincronización razonablemente buena).

Una vez que tu Git tenga las confirmaciones correctas, haz que tu Git extraiga sus confirmaciones, o combine una de sus últimas confirmaciones con una de las tuyas, o cualquier otra cosa que necesites hacer. Cada confirmación contiene un archivo permanente de cada archivo, de forma especial, de solo lectura, comprimido y sin duplicados.

Luego, ya sea que haya realizado una nueva confirmación combinada o simplemente esté eligiendo una de las confirmaciones existentes, haga que Git extraiga esta confirmación en un área del árbol de trabajo. Estos son los archivos que ve y con los que trabaja. Estos archivos existen localmente, por lo que no tiene que esperar a queservidor en R para enviarlos. Siempre están ahí, disponibles, de forma totalmente local, incluso si Internet se corta por un tiempo.

El costo de esto es cierto grado de duplicación de archivos. Las confirmaciones de archivo de Git existen en ambas computadoras. Pero la compresión de archivos de Git es bastante notable, al menos para archivos de texto comunes (aunque no es muy buena para archivos binarios grandes como imágenes JPG). La duplicación también proporciona una forma de copia de seguridad. En general, suele ser algo bueno.



------------------------------------

Simplemente mantenga un servidor ejecutándose en uno de los dispositivos y realice encuestas en intervalos pequeños.Hay muchos algoritmos de sincronización que puede usar (si planea ampliarlos para múltiples ediciones en varios dispositivos), por ejemplo, Sincronización diferencial



------------------------------------

No, no creo que puedas configurar un repositorio de git para que actúe así y es todo lo contrario de lo que significa Git, ya que Git es un sistema de control de versiones distribuido. Quizás otro sistema de control de versiones como SVN se ajuste mejor a su caso de uso.

2

1

¿Y por qué crees que un DVCS como git no cumple con el requisito? Por favor explíquelo.

- Asif Kamran Malick

27/03/2021 a las 21:47

¿Cómo se adaptaría mejor el uso de svn al caso de uso?

- AD7six

28/03/2021 a las 14:57

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare