2012-02-04 18 views
8

Quiero hacer algo como git add *.java y no lo deje vomitar solo porque uno de esos archivos coincide con el .gitignore.Con git, ¿cómo puedo realizar un git add y todavía tengo que ignorar los patrones en .gitignore?

Por ejemplo: En mi directorio que tienen

ignored.java 
something.java 
somethingelse.java 
somethingevenmoreelse.java. 

donde los tres últimos archivos estaban creadas por mí. Entonces quiero hacer git add *.java

y hacer que agregue esos tres archivos. En otras palabras, en lugar de darme

The following paths are ignored by one of your .gitignore files: 
ignored.java 
Use -f if you really want to add them. 
fatal: no files added 

... yo preferiría que sería simplemente ignorar los archivos .gitignored y añadir el resto.

+0

Uso zsh y descubrir el verdadero poder de la implementación del tabulador! – Simon

+0

Explique por favor, @Simon? –

+0

En zsh, si escribe 'git add s * .java' y presiona tab, se autocompletará a los tres archivos .java comenzando con' s'. Además, si escribe 'git add' y pulsa tab, solo completará los archivos no almacenados. – Simon

Respuesta

11

Si cita el patrón global, será interpretado por git en lugar del shell e ignorará los archivos ignorados antes de agregar el resto sin error.

git add '*.java' 

alternativamente:

git add \*.java 
+1

Este es definitivamente el camino correcto a seguir. Git interpretará los patrones glob en args de nombre de archivo, y aplicará los patrones de gitignore según corresponda sin arrojar un error. El error que se lanzó fue porque estaba pasando explícitamente un archivo ignorado a 'git add' y pensó que debía haber hecho algo que no pretendía. –

Cuestiones relacionadas