2011-07-07 29 views
110

Estoy agregando control de fuente a un proyecto que no tenía ninguno. El problema es que hay muchos archivos para agregar inicialmente a git con un archivo .gitignore, pero no puedo encontrar la manera de agregar todos los archivos sin incluir los archivos que coinciden con algo en el archivo .gitignore.git agregar todos excepto ignorar archivos en el archivo .gitignore

git add * 

El comando anterior no añade ningún archivo porque detecta archivos que son ignorados por el .gitignore.

git add -f * 

El comando anterior agregará todos los archivos, incluidos los archivos que deseo ignorar.

Entonces, ¿cómo agrego todos los archivos al mismo tiempo que sigo el archivo .gitignore?

Respuesta

216

Creo que te refieres git add . que se sumarán todos los archivos al repositorio de que no se especifican en el .gitignore - se puede ver estos cambios escribiendo git status

El . en bash generalmente significa este directorio y todos los demás directorios recursivamente, por lo que si lo hace desde el nivel inferior de su repositorio, debe agregar todos los archivos.

Mi flujo de git habitual es crear el archivo .gitignore y agregar los archivos del proyecto al repositorio. Voy a probar el archivo .gitignore escribiendo git status después de importar los archivos; si veo los archivos que he agregado (por ejemplo, solo .php o .html, NO .mp3 o .mov), entonces puede git add . agregar todo , y git commit -m "initial commit" para confirmarlos y usted debe estar configurado.

+33

Usted, señor, es un caballero y un erudito. Podrías haberlo dejado en "Creo que te refieres a' git add .'' y hubiera respondido perfectamente esto, pero ahora sé algo nuevo sobre bash y un ingenioso flujo de trabajo para configurar un repositorio para arrancar. Estamos aquí en el futuro (¡es 2013!) Gracias. – chucksmash

+1

@IamChuckB ¡me alegro de que haya sido útil! ¡Gracias por los comentarios! – Nic

+2

¿Qué sucede si hago 'git add --all .' cuál es la diferencia de' git add .' en este contexto? –

23
git add . 

Esto agregará todos los caminos y hacer caso omiso de partidos .gitignore

11

Trate git add . (que significa "añadir todos los archivos en el directorio actual y por debajo")

2

Otra opción es utilizar el archivo del repositorio git exclude. Este archivo funciona de manera similar a un archivo .gitignore pero no está comprometido con el repositorio.

Desde el Github docs:

Usted puede utilizar esta técnica para los archivos generados localmente que no esperar que otros usuarios generar, como los archivos creados por el editor.

Use su editor de texto favorito para abrir el archivo llamado .git/info/exclude dentro de la raíz de su repositorio de Git. Cualquier regla que agregue aquí no se registrará, y solo ignorará los archivos de su repositorio local.

  1. En la Terminal, vaya a la ubicación de su repositorio Git
  2. Usando el editor de textos, abra el archivo .git/info/exclude
  3. Añadir reglas al archivo exclude como lo haría el archivo .gitignore
Cuestiones relacionadas