2010-02-28 53 views
22

¿Cómo puedo agregar archivos comenzando con punto (archivos ocultos) en git repo? Git parece ignorarlos siempre.Forzar git para agregar archivos de puntos al repositorio

Cuando escribo "git add.", Se agregan los archivos dot en GIT_DIR, pero no desde los subdirectorios. Por otro lado, "git add subdir/.dotfile" no funcionará.

Probé "git add -f" y puse "!. *" En GIT_DIR/.git/info/exclude. Sin suerte.

+2

"Toca. dotfile; git add .dotfile "trabajar en el directorio de nivel superior? Esto se parece un poco a '. * * aparece en un archivo .gitignore (tal vez en el subdirectorio), pero cuando pruebo esto (de hecho, con una versión bastante nueva de git) Me aparece una advertencia que sugiere el uso de la bandera -f para agregar git. –

Respuesta

11

Se pueden añadir específicamente por ruta, por ejemplo,

git add */.* 

o

find . -name '.[a-z]*' -exec git add '{}' ';' 

(Es bueno tener cuidado con el -name debido a que no necesariamente quiere recoger todos los directorios con su entrada ..)

Pero de lejos la forma más fácil de hacerlo es con git gui. Simplemente haga clic en los archivos.

+0

¿Qué GUI? Estoy buscando la herramienta Git que muestra estos archivos y probé Giggle, Git Cola y gitg y no muestran .files y yo no vea cualquier opción para habilitar mostrarlos ... – Line

+0

@Line desde el símbolo del sistema, escriba "git gui" y la guía preempaquetada debería ejecutar (en Windows.) – avgvstvs

+0

@avgvstvs, gracias, pero ¿y si solo uso Linux (el más reciente Ubuntu/Fedora)? :) – Line

23

git add . y git add dir/.dot funcionan bien para mí con las versiones sin adornos 1.6.6.1 y 1.7.0 de Git que tengo a mano en este momento.

% git --version 
git version 1.6.6.1 
% git ls-files -o 
.baz/baz 
.foo 
bar/.bar 
quuux/quuux 
quux 
% git add . 
% git ls-files -o 
% git ls-files 
.baz/baz 
.foo 
bar/.bar 
quuux/quuux 
quux 

¿Qué versión de Git estás utilizando? ¿Sus subdirectores son realmente submódulos (que se administran de manera independiente)?

"archivos de puntos" no están excluidos por defecto, pero tal vez un poco de configuración en su sistema, repositorio o árbol de trabajo los ha configurado de esa manera. Si se muestran en git ls-files --exclude-standard -oi, se ignoran y "!. *" Es la forma correcta de "ignorarlos". Pero para ser efectivo, ese patrón debe estar en el lugar correcto. Ignora se procesan en este orden:

  • .gitignore del directorio que contiene de inmediato, entonces
  • .gitignore del directorio padre (cada padre, hasta la raíz del repositorio), entonces
  • $ GIT_DIR/info/excluir, entonces
  • el archivo informado por git config core.excludesfile (que podría ser fijado por
    • $ GIT_DIR/config,
    • $/.gitconfig o
    • el archivo de configuración del sistema HOME (GIT_EDITOR=echo git config --system --edit tratar de obtener su nombre de ruta)).

Cuando un nombre de ruta coincide con un patrón en un solo archivo, archivos posteriores no son consultados. El último partido en cada archivo "gana". Un patrón en $ GIT_DIR/info/exclude nunca puede anular un patrón en un archivo .gitignore. Entonces, si los archivos están siendo ignorados (por git ls-files --exclude-standard -oi) y si "!.*" En $ GIT_DIR/info/exclude es ineficaz, a continuación, comprobar todos los archivos .gitignore aplicables para el culpable.

+1

Su respuesta me ayuda.Gracias – inix

2

Curiosamente bajo Windows 10 con la versión git 2.12.0.windows.1 se ejecuta bajo "Git-Bash" también falla un "git add. *". Archivos como .classpath y .project etc. no se agregan y, por lo tanto, no se envían posteriormente. Pero bueno, este es el lugar incorrecto para enviar un informe de error.

+0

¿cuál es la solución? –

+0

Creo que los agregué de forma individual sin usar un comodín (*). Lo sentimos, no tenemos acceso a una máquina de Windows en este momento. –

+0

También tengo ese problema. Windows 10 64 + git-2.14.2-64 que se ejecuta bajo Git-Bash 'git add *' agrega solo algunos archivos. Los archivos cuyo nombre comienza con caracteres '.' no agregados. Entonces no comprometido. No encontré un informe de error en https://github.com/git-for-windows/git/issues – Fsr

Cuestiones relacionadas