git - publicar - Deshabilitar el área de preparación
git tags best practices (5)
Realmente no me gusta el área de preparación de git, solo hace que mi vida sea innecesariamente confusa.
¿Es posible desactivarlo para que todos los archivos editados y nuevos estén en un solo contexto? Para que git diff muestre la diferencia entre el repositorio y mi directorio de trabajo (y no tengo que escribir también git diff --cached) y para que git ci verifique mi copia de trabajo completa (no solo la parte que está puesta en escena).
Si no, las alternativas (como la configuración de configuraciones) para que parezca que no tengo una puesta en escena, también serían excelentes.
No tengo la opción de cambiar a un DVCS diferente y no quiero aprender a que me guste el área de preparación. Por favor, no publique para sugerir estos :(
Gracias, -Shawn
PD: pregunté esto en superuser.com, https://superuser.com/questions/192022/disable-git-staging-area , pero ese foro parece tener mucho menos publicado (solo 118 git etiquetados en comparación con 4448 aquí)
Y no quiero aprender a que me guste el área de puesta en escena. Por favor, no publique para sugerir estos :(
Como todos los demás. Voy a sugerirte que aprendas a que te guste el área de preparación. Realmente es útil, aunque el 90% del tiempo lo ignorarás.
Si actualmente no lo encuentras útil, entonces creo que estás pensando en cometer errores. Todavía estás pensando en términos de archivos individuales o todo a la vez. La forma correcta de pensar acerca de las confirmaciones es por característica / corrección y las características / correcciones a menudo se distribuyen en más de un archivo. Debe agrupar los cambios relacionados en un solo compromiso. Y a veces ese grupo de cambios no abarca todos los cambios actuales. Que es cuando la puesta en escena se vuelve útil.
Sé que esto no es lo que quiere escuchar, pero en realidad, en el momento en que deja de pelear con la herramienta y aprende a vivir con ella, es el momento en que deja de ser "doloroso" usarla.
El área de preparación es (IMO) una de las fortalezas más grandes de Git y realmente muestra cómo es diferente de cualquier otro DVCS.
Puedes usar
git commit -a
para agregar automáticamente los archivos cambiados. Sin embargo, para los archivos sin seguimiento estás solo. Practica git add . && git commit
git add . && git commit
.
Si no te gusta usa otro VCS. ¿Obligado a usar un repositorio git? Vea algunos de los complementos disponibles que son compatibles, como hg-git .
Personalmente, aprendería a jugar con las fortalezas de Git en lugar de luchar contra ellas. Imagine que se encuentra en medio de una gran rama desordenada, pero necesita realizar algunos cambios selectivos para la producción. Boom, git add [files]
y luego cometer y empujar. Vuelve al trabajo sin desordenar nada más. Hay muchos otros ejemplos, pero quizás sea el más fácil de entender.
Los alias son tus amigos.
Por ejemplo, puede crear un comando diff que haga lo que quiera con un mínimo de escritura: en su .gitconfig
put
[alias]
di = diff HEAD
co = commit -a
Luego puede simplemente hacer git di
y obtener su propio diff, o git co
y obtener su propio comando de compromiso personal.
No. Aprendes a amarlo.
En una nota más seria, git add -A; git commit
git add -A; git commit
es probablemente tu amigo. De esa manera, evitará la mayoría de las interacciones con (y los beneficios de) el área de preparación.
git add -A
es más poderoso que el habitual git commit -a
. Encontrará archivos nuevos, así como almacenamiento de contenido modificado y eliminación de archivos que ya no están en el árbol de trabajo.
Puede usar git commit -a
para confirmar todos los archivos modificados / eliminados. Usted todavía tendría que agregar archivos sin seguimiento de forma manual pensado.
Vine de Subversion y al principio también me confundió el área de preparación. Pero lo encontrarás muy útil. Si realiza los cambios que ha probado, pero realiza más cambios que rompen su compilación, puede restablecer los cambios en etapas.