Ramble: Cómo explicarle a tu novia qué son Git y GitHub
De: Manhua Programming
El fin de semana, estaba viendo "El cerebro más poderoso" en casa, y mi novia estaba revisando su celular a mi lado, y todo estaba bien. Quién sabe, poco después, de repente me preguntó:
Control de versiones
Si quieres presentar qué es GitHub, debes presentar qué es Git y luego la versión. Hay que mencionar el control.
Sabemos que si varios ordenadores están en la misma LAN, pueden compartir archivos de LAN. Los que comparten pueden compartir sus archivos con otras personas para leerlos y modificarlos a través de la configuración.
¿Qué pasará si varias personas necesitan modificar el mismo archivo compartido? Supongamos que hay tres personas. A comparte la carpeta mhcoding, que contiene tres archivos mhcoding1.png, mhcoding2.png y mhcoding3.png. B y C necesitan modificar este archivo.
B y C copian la carpeta mhcoding a sus propias computadoras respectivamente y luego realizan modificaciones. Una vez completadas las modificaciones, deben cargarlas. B hizo los cambios primero y luego cargó su propio archivo, cubriendo el intercambio de A. Después de eso, C también completó los cambios y subió sus cambios. De esta forma, C sobrescribirá las modificaciones de B.
Para resolver el problema anterior, se necesita una forma de recordarle a C cuando quiere cargar un archivo y decirle que debe tener en cuenta que B ha cambiado el archivo.
Una mejor manera es a través del control de versiones.
Si se utiliza un sistema de control de versiones, cada miembro del equipo puede modificar cualquier archivo en cualquier momento sin ninguna preocupación. El sistema de control de versiones puede recordarnos los conflictos de modificación de archivos e incluso puede ayudarnos a modificar automáticamente varios archivos. Los cambios individuales se fusionan.
Con el control de versiones, también podemos mirar hacia atrás el contenido de archivos específicos en una versión anterior, y también podemos verificar los cambios en un cambio determinado. Genial para la colaboración en equipo.
Formas de control de versiones
Sistema de control de versiones local
Muchas personas están acostumbradas a copiar todo el directorio del proyecto para guardar diferentes versiones y tal vez cambiarle el nombre. Se muestra el tiempo de respaldo para mostrar la diferencia. La única ventaja de hacer esto es la simplicidad. Sin embargo, existen muchas desventajas: a veces el directorio de trabajo se confunde y, una vez que se pierde el archivo incorrecto y los datos, la recuperación no se puede deshacer.
Para resolver este problema, la gente ha desarrollado muchos sistemas de control de versiones locales hace mucho tiempo, la mayoría de los cuales utilizan alguna base de datos simple para registrar las diferencias en actualizaciones anteriores de archivos.
Sistema de control de versiones centralizado
A continuación, la gente encontró otro problema: ¿cómo permitir que los desarrolladores de diferentes sistemas trabajen juntos? Como resultado, surgieron sistemas de control de versiones centralizados.
Este tipo de sistema tiene un único servidor de administración centralizado que guarda las revisiones de todos los archivos, y las personas que trabajan juntas se conectan a este servidor a través de clientes para recuperar los archivos más recientes o enviar actualizaciones.
?
Este enfoque aporta muchos beneficios, especialmente en comparación con la versión local antigua. Ahora todos pueden ver hasta cierto punto en qué están trabajando otros participantes del proyecto. Los administradores también pueden controlar fácilmente los permisos de cada desarrollador y la gestión es mucho más sencilla.
Sistema de control de versiones distribuido
La desventaja más obvia de la centralización es el problema del punto único del servidor central. Si el servidor central está inactivo durante una hora, nadie podrá enviar actualizaciones durante esta hora y nadie podrá trabajar en conjunto.
Si el disco del servidor central falla y no se realiza ninguna copia de seguridad, o la copia de seguridad no se realiza a tiempo, habrá riesgo de pérdida de datos.
Así surgió el sistema de control de versiones distribuido. En este tipo de sistema, el cliente no sólo extrae la última versión de la instantánea del archivo, sino que refleja completamente el almacén de código.
De esta manera, si falla algún servidor utilizado para el trabajo colaborativo, se puede utilizar cualquier almacén local reflejado para recuperarse posteriormente. Porque cada operación de extracción es en realidad una copia de seguridad completa del almacén de códigos.
?
Git
Git es en realidad un software de control de versiones distribuido que presentamos anteriormente. Tiene las siguientes características:
?
Los programadores son una profesión típica que requiere trabajo en equipo. En la mayoría de los casos, se requieren varios programadores para desarrollar el mismo proyecto al mismo tiempo, al igual que varios programadores necesitan modificar un proyecto al mismo tiempo. documento de palabra. Por tanto, Git es una herramienta imprescindible para muchos programadores.
GitHub
GitHub es una plataforma de alojamiento para proyectos de software privados y de código abierto. Debido a que solo admite git como la única versión del formato de biblioteca para alojamiento, se llama GitHub.
?
La llamada plataforma de alojamiento significa que se puede utilizar para almacenar archivos. Es sólo que los archivos anteriores son de acceso público.
GitHub es un servicio de alojamiento de código fuente de software que utiliza Git para el control de versiones, y GitHub también introduce algunos atributos sociales. Afirma ser el sitio de citas para programadores (gays) más grande del mundo.
?
?
Esos extraños "proyectos" en GitHub
Vestido: un lugar de reunión para expertos en ropa femenina
129 contribuyentes se reunieron en este proyecto llamado Dress, subieron miles de fotos de mujeres vestidas y recibieron más de 8.000 estrellas.
¿Puedes creer que esto es un codificador?
Dirección: /komeiji-satori/Vestido
Thanos - Comando Thanos
Thanos.sh es un comando Thanos de código abierto que puede eliminar computadoras aleatoriamente La mitad superior de el documento.
Dirección: /hotvulcan/Thanos.sh
nocode: ni una sola línea de código
Esto es un problema más que un proyecto Proyecto maravilloso, no hay una sola línea de código en el proyecto y hay todo tipo de pretensiones en el Problema.
?
Me gustaría preguntar, ¿qué tan aburridas son las 27.000 personas que trabajan en el proyecto Star?
programmer-job-blacklist Lista negra de trabajos de programador
hangzhou_house_knowledge Guía para comprar una casa en Hangzhou
cuántas personas hay alrededor Utilice la señal Wi-Fi para estimar cuántas personas hay cerca