.gitignore and Visual Studio project: Ignore bin/Debug directory but not bin/Release directory

I have a C# Visual Studio project in a git repository. I want to ignore the contents bin/Debug directory but not the contents of the bin/Release‘ directory. I’ve added bin/Debug to my .gitignore file, but it doesn’t seem to work – it is including the entire contents of the bin directory. What would the correct entry be to do this?

  • .NET: Large revision numbers in AssemblyVersionAttribute
  • Generic method for reading config sections
  • Updating GitExtensions on Windows XP with .NET 4.0 gets error '…4.0 must be installed…'
  • Code publish through jenkins for .net MVC solution in Ubuntu machine
  • How to get file's contents on Git using LibGit2Sharp?
  • Git submodule fails on TFS Build
  • How to debug why source code labeling fails in VSTS build?
  • How do I get information about a git repo using absolute paths
  • Git submodule or sub-repository or remote?
  • TeamCity and git repository with Visual Studio Team Services
  • How to use git-svn as intermediate review tool for a SVN repository?
  • How to check in git to which branch was the last change made?
  • 6 Solutions collect form web for “.gitignore and Visual Studio project: Ignore bin/Debug directory but not bin/Release directory”

    Here’s what we’ve been using lately, it removes all resharper generated stuff and some other important things. Note that we don’t commit our release directory, so you shouldn’t include Release/ in your .gitignore, but to answer your question, you should include Debug/.

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

    UPDATE

    Here’s a pretty comprehensive example from github:

    This typically happens because the .gitignore was added after the files were committed. The .gitignore tells git to ignore untracked files that match, once stuff is committed the ignore will no longer work. One way to fix it is to remove the bin/debug folder (manually through explorer/powershell/bash), then commit the removals. Once that is done the ignores should work as you expect.

    1. Remove files/folder
    2. git add -A
    3. git commit

    You shouldn’t have to delete anything. After you added the .gitignore file, run this command to clear the cache, then stage and commit again:

    git rm -r . --cached
    

    I know it is an old question, but I’ve decided to share my approach which excludes exactly bin/Debug, bin/Release etc.

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

    Running the following command worked for me (thanks to “orourkedd”):

    git rm -r . --cached
    

    I manually added the .gitignore file but it wasn’t taken into consideration until I ran this command.

    I then had to commit again and all good to go now. /bin and /obj folders are properly excluded now.

    I fixed this by replacing bin/Debug with Debug.

    This would also have the affect of ignoring the obj/Debug directory, however I want to ignore the entire contents of the obj directory, so I have also added obj to .gitignore.

    Git Baby is a git and github fan, let's start git clone.