Cómo enseñar a las personas a usar git

Para el trabajo, tengo que participar en varios proyectos, así que sé bien cómo trabajan todos mis colegas. Recuerdo que la compañía comenzó a usar Git solo un par de semanas antes de que yo llegara. En los monitores de los desarrolladores, colgaron pegatinas con un recordatorio: primero agregue, luego confirme, luego presione.


No sabían por qué. Simplemente se les dijo a los programadores que siguieran estrictamente las instrucciones, de lo contrario el problema. Pero los problemas surgieron tan a menudo que decidí organizar un taller de Git.

Idea


Me gusta mapear en mi cabeza. No digo "mapas mentales" porque es un tipo de diagrama bien conocido. Se trata de algunas imágenes, estructuras o cualquier representación gráfica en la mente. Por ejemplo, cuando era niño, aprendí aritmética al introducir dados.

Así que preparé algunos dibujos. No es necesario mirarlos para entender el texto. Hay una explicación para todos.

Además, es muy importante enseñar a una persona los términos. De lo contrario, no entenderá los mensajes de Git. Los dibujos son una buena manera.

Sistema distribuido de control de versiones




En la figura, cuatro áreas se distribuyen de la siguiente manera:

  • Entorno de desarrollo:
    • Directorio de trabajo
    • Área intermedia (puesta en escena) o índice
    • Repositorio local
  • Servidor:
    • Repositorio remoto

Aquí puede explicar los beneficios de un sistema de control de versiones distribuido.

Clonación de repositorio




Al clonar, los datos de un repositorio remoto se mueven a dos áreas:

  • Directorio de trabajo
  • Repositorio local

Realizar cambios en el directorio de trabajo




Hay dos tipos de archivos en el directorio de trabajo:

  • Seguimiento : archivos que Git conoce.
  • Intocables : que aún no se han agregado, por lo que Git no los conoce.

Actualizar repositorio remoto




Después de preparar los cambios en el directorio de trabajo, deben agregarse al área de preparación.

Cuando se han acumulado varios cambios allí con un objetivo común, es hora de crear una confirmación en el repositorio local con un mensaje sobre este objetivo.

Si el repositorio local tiene una o más confirmaciones listas para compartir con el resto del mundo, se envían al repositorio remoto .

En este punto, podemos hablar sobre los diversos estados del archivo en el entorno de desarrollo: modificado , intermedio (por etapas) y fijo (comprometido).



Además puedes explicar:

  • : git diff
  • : git diff --staged
  • . .


(fetching)




git fetch .

(pulling)




git pull :

  • : fetch
  • : merge

, git pull --rebase. fetch + merge fetch + rebase. , .




, : .

, : , , , .


(Visual SourceSafe, TFS Subversion): , , . , .




, Git .

Hacker News:


Reddit, , «, Git», , , Git Pro Git. , . , . !

, Hacker News, u/cryptoz, Reddit!

Source: https://habr.com/ru/post/437000/


All Articles