Desea una opción de ejecución en seco para cualquier comando, independientemente de la supuesta idea de que "no necesita una ejecución en seco para el pago porque puede obtener una lista de diferencias de otras maneras".
No desea tener una opción de ejecución en seco para obtener una lista de diferencias, quiere que la ejecución en seco verifique "¿Qué sucederá cuando presione enter?" antes de hacerlo de verdad Hay una diferencia. Está probando el comportamiento real/exacto de un programa cuando puede haber alguna ambigüedad si todo lo que hizo fue leer el manual.
Tengo un proyecto extraño donde el repositorio se basa en '/'. Entonces, hay un directorio '/ git' y archivos '/.gitignore' y '/.gitmodules'. El /.gitignore y /.Los archivos de gitmodules se rastrean en el repositorio, y eso es un problema porque incluso si el usuario desarrollador tiene permiso para editar el archivo, aún no tiene permiso para eliminar y volver a crear el archivo, ya que el no puede y puede 't, tiene permiso de escritura en'/'. Si git edita archivos en el lugar no habría ningún problema, pero git lo elimina y lo reemplaza, porque un usuario obtiene un error que git no puede desvincular el archivo. En el transcurso del desarrollo de un cambio en nuestra configuración de recompra, y algunas instrucciones para los desarrolladores seguir para eliminar este problema en el futuro, a lo largo de la manera que quiero saber qué va a hacer este comando:
git checkout master -- /.git*
y otra posibles variaciones como
git checkout master -- '/.git*'
y otros, el cambio de la cáscara de englobamiento y/o ver cómo git en sí podría interpretar el valor especificaciónDeArchivo final. Si escapo un '*' del shell, ¿se expandirá un '*', o lo tratará como un literal? Si lo expande, ¿incluiría el directorio '/.git/'? Si lo expande, ¿hay alguna sintaxis de expresiones regulares que podría usar que signifique 'cualquier-único-carácter no vacío' como un '.' en expresiones regulares o un '?' ¿en globbing de concha? etc etc
No quiero saber qué archivos son diferentes, quiero probar el comportamiento exacto de git para encontrar la mejor/más simple versión de un comando inusual o un conjunto de comandos.
Para eso, realmente quieres una opción de funcionamiento en seco. Ya sé qué archivos son diferentes. En este caso, MUCHOS archivos serían diferentes, y no quiero ninguno. Solo quiero /.gitignore y /.gitmodules y nada más.
En este caso, sé que puedo hacer eso simplemente especificándolos explícitamente en la línea de comandos.
git checkout master -- /.gitignore /.gitmodules
Pero quiero ver si hay una sintaxis globbing más corto que hará que los dos de forma automática, sin embargo, lo ideal, para no incluir el directorio /.git. E idealmente, me gustaría averiguar cuál es la forma más simple en la que puedo salirse con la suya. Sé que podría usar el intérprete de comandos para hacer una expansión elegante y muy específica, pero si algo como '/ git *' funciona, prefiero usar eso que '/ git {i, m} *'
Este particular la tarea es pequeña y tiene varias respuestas simples. Por favor, no me diga formas de resolver ESTE PROBLEMA EXACTO sin "git checkout --dry-run", o dígame qué tan estúpido fue hacer un repositorio en /, lo sé también. Ya sé varias maneras de hacer mi trabajo inmediato. Ese no es el punto. Podría haber involucrado fácilmente más archivos o un patrón globbing más complicado de modo que no habría sido tan conveniente simplemente listar los archivos explícitamente, o podría haber sido un tipo de problema completamente diferente.
El punto es, en general, se aplica a cualquier comando en cualquier lugar, incluido el pago de git, siempre hay una opción de ejecución en seco para probar el comportamiento de un programa. Leer el manual o --ayuda no responde la pregunta respondida por ejecución en seco.
Tal vez estoy confundido, pero ¿no estás preguntando las diferencias entre tu árbol de trabajo y el índice? Esos se muestran con 'git diff'. –
@TilmanVogel: Como sabes, el comando 'git clean' eliminará los archivos no rastreados. pero 'git clean -n' no eliminará archivos, solo le indicará cuáles son los archivos que se eliminarán. Solo quería saber si existe esa opción en el comando de pago de git. Gracias. –
Bien, entonces un vistazo a 'git help checkout' responde fácilmente a esto como" no ". Y creo que la razón es que 'git status' y' git diff' juntos dan toda la información correspondiente. También me gusta 'git citool' para esa vista. Por supuesto, la historia es diferente cuando se usa 'git checkout' en algo más que el índice. –