solucionado puedo puede problemas problema porque open office hay formato fin existe etiqueta error elemento documento contenido con archivo abrirse abrir abre abierto git staging git-index

git - puedo - ¿Cómo se puede agregar un nuevo archivo sin tener que organizarlo?



no se puede abrir documento porque existe un problema con el contenido (3)

Con Git 2.5, git add -N/--intent-to-add es en realidad la solución correcta.
El nuevo archivo no será parte de la próxima confirmación.

Ver commit d95d728 por Nguyễn Thái Ngọc Duy ( pclouds ) (fusionado en d0c692263 ):

diff-lib.c : ajusta la posición de las entradas ita en diff

Problema:

Las entradas agregadas por " git add -N " son un recordatorio para el usuario para que no se olviden de agregarlas antes de comprometerse. Estas entradas aparecen en el índice aunque no sean reales. Su presencia en el índice lleva a un " git status " confuso como este:

On branch master Changes to be committed: new file: foo Changes not staged for commit: modified: foo

Si haces un " git commit ", " foo " no se incluirá aunque " status " lo informe como " to be committed ".

Solución:

Este parche cambia la salida para convertirse

On branch master Changes not staged for commit: new file: foo no changes added to commit

Eso significa:

Trate esos caminos como "aún no se ha agregado al índice, pero Git ya los conoce"; " git diff HEAD " y " git diff --cached HEAD " no deben hablar sobre ellos, y " git diff " deben mostrarlos como nuevos. + archivos aún por agregar al índice.

Para usar git de manera efectiva (y según lo previsto) hago pequeños atómicos, mientras que tengo sesiones más largas donde no solo cambio una cosa. Por lo tanto, hago un uso intensivo de git add -p . Sin embargo, esto no funciona para archivos completamente nuevos, porque tiendo a olvidarlos más adelante.

Lo que quiero hacer es decirle a git que hay un nuevo archivo, quiero rastrearlo, pero no lo instale :

Ejemplo: ejecutar el git status produce:

# On branch my-current-branch # Your branch is ahead of ''origin/my-current-branch'' by 2 commits. # # Changes to be committed: # <<STAGED SECTION>> // A # # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # <<UNSTAGED-YET-KNOWN SECTION>> // B # # Untracked files: # (use "git add <file>..." to include in what will be committed) # <<UNKNOWN SECTION>> // C

Si tengo un archivo foo en la sección C, y digo que git add foo irá a la sección A. Si digo git add -N foo , irá tanto a A como a B. Sin embargo, eso significaría que se incluiría en la siguiente confirmación, al menos por el hecho de que hay un nuevo archivo.

Quiero que vaya exclusivamente a la sección B, de modo que luego pueda agregarlo a A con git add -p o git add foo (o lo que sea).

Editar

Con respecto a la solución add -N , esto no funciona porque si intento confirmar después de haber dicho add -N y no haberlo agregado correctamente, git se queja porque no sabe cómo manejar archivos vacíos:

foo: not added yet error: Error building trees


Podría cometer un archivo vacío con esa ruta antes de realizar los cambios. Si ya ha escrito cosas allí, retire el archivo, git commit --amend un archivo en blanco, confirme eso, luego agregue -p como de costumbre y git commit --amend para que no tenga un compromiso de "Agregar archivo en blanco".


Tal vez podría intentar escribir un enlace de precompromiso que le avise si tiene archivos sin seguimiento. Sin embargo, esto requerirá que mantengas siempre limpio tu directorio git para que funcione (y, obviamente, deberás mantener un .gitignore actualizado).

También intente git add -i que es similar a git add -p pero también tiene una interfaz para agregar nuevos archivos.