git - gestion de usuarios django
Git: ¿Dónde está exactamente el "directorio de trabajo"? (6)
Estoy pasando por algunos tutoriales de Git. El concepto de un " directorio de trabajo " sigue siendo mencionado, sin embargo, ninguno de los tutoriales o documentos que leí señala dónde o qué es este " directorio de trabajo ".
Pensé que en realidad era el directorio principal de .git
, también conocido como el directorio en el que git init
. Pero el video tutorial que estoy viendo habla sobre el estado de la falta de confirmación y el " directorio de trabajo limpio ":
De hecho, realmente puede hacer una copia del repositorio y hacer esa copia para que no tenga un directorio de trabajo, esto en realidad se llama el clon desnudo. Esto es en realidad lo que usa GitHub.
Si mi comprensión del " directorio de trabajo " es correcta, ¿cómo puede un repositorio no tener un " directorio de trabajo "? ¿Y qué significa cuando dice que GitHub usa un " clon desnudo "?
¿Trabajas directamente en los repositorios locales?
Cuando sigo las instrucciones de Microsoft [ref. https://docs.microsoft.com/en-us/azure/devops/repos/git/clone?view=azure-devops&tabs=visual-studio ], ahí es donde acabo de abrir el archivo de solución .sln. Eso me parece mal y desafortunado, porque prefiero trabajar en el código de mi unidad D: masiva (D: / dev) en lugar de en C: / Users // source / repos, donde los repos se guardan de forma predeterminada (no No importa que los repositorios locales se mantengan allí, no es lo ideal, siempre que pueda trabajar en mi área D: / dev).
El directorio de trabajo es simplemente su directorio local actual en el que está trabajando. por ejemplo, si tiene master, dev y yourname-dev como sus sucursales remotas, si realiza el proceso de pago de dev a yourname-dev , yourname-dev es ahora su directorio de trabajo si realiza el proceso de pago de este directorio de trabajo ( yourname-dev ) a otro, por ejemplo, dev , dev es ahora tu nuevo directorio de trabajo
Es donde sea que tengas checkout el proyecto. Por ejemplo, el directorio dentro del cual ha revisado una rama de su proyecto. Normalmente es la carpeta que contiene la carpeta .git
. Ese es el directorio de trabajo. Cuando realiza cambios en los archivos en su rama extraída, realiza cambios en el directorio de trabajo. En este punto el directorio de trabajo tiene cambios no comprometidos. Por lo tanto, inicialmente, cuando no haya realizado ninguna confirmación, el directorio de trabajo estará limpio ya que no hay cambios.
Esto debería aclarar las cosas para nosotros:
¿Cuál es la diferencia entre un repositorio creado con el comando git init y el comando git init --bare?
Los repositorios creados con el comando git init se llaman directorios de trabajo. En la carpeta de nivel superior del repositorio encontrarás dos cosas:
A .git subfolder with all the git related revision history of your repo A working tree, or checked out copies of your project files.
Los repositorios creados con git init --bare se llaman repositorios pelados. Se estructuran un poco diferente de los directorios de trabajo. En primer lugar, no contienen ninguna copia de trabajo o extraída de sus archivos de origen. Y segundo, los repositorios simples almacenan el historial de revisiones de git de su repositorio en la carpeta raíz de su repositorio en lugar de en una subcarpeta .git. Nota: los repositorios simples suelen tener una extensión .git.
Tomado de John Saints - ¿Qué es un repositorio de git al descubierto?
Un clon de git simple no contiene un directorio de trabajo de código desprotegido, en otras palabras.
Piense en ello como solo el directorio .git
(la base de datos Git) sin nada más.
Para tipo de combinar las otras dos respuestas:
Como se indica en la here
El directorio de trabajo es un pago único de una versión del proyecto.
Básicamente, esto significa que si selecciona una rama (por ejemplo, maestro) y está sentado en una confirmación en particular (por ejemplo, HEAD), su directorio de trabajo es el término "paraguas" para todos sus archivos y carpetas.
Aunque no es un directorio / carpeta en particular. El directorio de trabajo cubre todos los directorios, archivos ... todo.
Menciono esto porque cuando quiere cometer algunos archivos, esos archivos estarán en el directorio de trabajo y tendrá que configurarlos (con git add
) antes de cometerlos (con git commit
).
Según la documentation :
Finalmente, tienes tu directorio de trabajo. Los otros dos árboles almacenan su contenido de una manera eficiente pero inconveniente, dentro de la carpeta .git. El Directorio de trabajo los desempaqueta en archivos reales, lo que hace que sea mucho más fácil editarlos. Piense en el Directorio de trabajo como un espacio aislado, donde puede probar los cambios antes de enviarlos a su área de preparación (índice) y luego al historial.