2012-06-20 41 views
27

Tengo un proyecto C# Visual Studio en un repositorio git. Quiero ignorar el contenido del directorio bin/Debug pero no los contenidos del directorio bin/Release '. Agregué bin/Debug a mi archivo .gitignore, pero parece que no funciona, incluye todo el contenido del directorio bin. ¿Cuál sería la entrada correcta para hacer esto?.gitignore y proyecto de Visual Studio: Ignorar el directorio bin/Debug pero no el directorio bin/Release

+0

Nos muestran su archivo '.gitignore' favor – uday

+4

complemento 'Depuración /' a tu .gitignore – Noah

Respuesta

0

He arreglado esto substituyendo bin/Debug con Debug.

Esto también tendría el efecto de ignorar el directorio obj/Debug, sin embargo, me quieren hacer caso omiso de todo el contenido del directorio obj, por lo que también se han añadido a obj.gitignore.

26

Esto es lo que hemos estado usando últimamente, elimina todas las cosas generadas por resharper y algunas otras cosas importantes. Tenga en cuenta que no comprometemos nuestro directorio de publicación, por lo que no debe incluir Release/ en su .gitignore, pero para responder a su pregunta, debe incluir Debug/.

/build/ 
*.suo 
*.user 
_ReSharper.*/ 
*.sdf 
bin/ 
obj/ 
Debug/ 
Release/ 
*.opensdf 
*.tlog 
*.log 
TestResult.xml 
*.VisualState.xml 
Version.cs 
Version.h 
Version.cpp 

ACTUALIZACIÓN

He aquí un ejemplo bastante completa de GitHub:

+2

Esto probablemente no funcionará debido a la 'bin /' 'hacer caso omiso de la Directiva de depuración /' y 'Release /' redundante. –

+0

Deberías probarlo primero ... – Noah

+1

@ Gary.S, todavía debería funcionar. Las últimas líneas son simplemente redundantes y podrían eliminarse. –

23

lo general, esto sucede porque los wa .gitignore s agregado después de que se hayan confirmado los archivos. El .gitignore le dice a git que ignore los archivos sin seguimiento que coinciden, una vez que se han cometido las cosas, la opción de ignorar ya no funcionará. Una forma de solucionarlo es eliminar la carpeta bin/debug (manualmente a través de explorer/powershell/bash), luego confirmar las eliminaciones. Una vez hecho esto, los ignores deberían funcionar como esperabas.

  1. Eliminar los archivos/carpetas
  2. git add -A
  3. git commit
24

No debería tener que eliminar nada. Después de que añada el archivo .gitignore, ejecute este comando para borrar la memoria caché, entonces el escenario y comprometerse de nuevo:

git rm -r . --cached 
+1

Nota * luego escenifique y comprométase nuevamente * – gidmanma

+1

Sí, si llegó tarde a la fiesta con su gitignore, entonces esta es la solución correcta a seguir ... cuando realice la etapa y se vuelva a comprometer, todas las cosas bin/obj que fueron cometido antes será eliminado. Funciona un placer – davewasthere

5

Sé que es una vieja pregunta, pero he decidido compartir mi enfoque que excluye exactamente bin /, bin/liberación etc.

*/**/bin/Debug 
*/**/bin/Release 
*/**/obj/Debug 
*/**/obj/Release 
4

al ejecutar el comando siguiente trabajó para mí (gracias a "orourkedd") depuración:

git rm -r . --cached 

que añaden manualmente el archivo .gitignore pero no se tuvo en cuenta hasta que ejecuté este comando.

Luego tuve que comprometerme nuevamente y todo bien para ir ahora. Las carpetas /bin y /obj están correctamente excluidas ahora.

0

Esto funciona para mí:

*.exe 
*.pdb 
*.manifest 
*.cache 

Si está utilizando GitHub Escritorio como lo estoy usando, puedes hacer clic derecho en el archivo que desea excluir o haga clic derecho y excluir por extensión:

enter image description here

Esto generará automáticamente un archivo .gitignore para usted con el código como la de arriba. Puede descargar GitHub Desktop aquí: GitHub Desktop for Windows 64-bit.

0

Esto puede ser un poco fuera de tema, pero cada vez que empiezo a crear un nuevo proyecto, por lo general uso GitIgnore.IO para crear mi archivo de gitignore inicial y luego lo retoque a partir de allí según mis necesidades.

Cuestiones relacionadas