【问题标题】:How could I ignore bin and obj folders from git repository?我怎么能忽略 git 存储库中的 bin 和 obj 文件夹?
【发布时间】:2021-05-08 23:33:17
【问题描述】:

我想忽略我的 git 存储库中的 bin 和 obj 文件夹。正如我发现的那样,在 .gitignore 中没有简单的方法可以做到这一点。那么,还有其他方法吗?在 Visual Studio 中使用干净的解决方案?

【问题讨论】:

  • 它对我来说没问题 - 我在我的 .gitignore 文件中将“bin”和“obj”作为单独的行添加
  • 如果解决方案包含多个项目,而不仅仅是一个?
  • 您能否准确地发布您正在尝试的内容和无效的内容。顶级.gitignore 中的objbin 应忽略所有较低级别中称为objbin 的所有内容。
  • 我的理解是 .gitignore 内容适用于每个子目录,所以普通的 'bin' 和 'obj' 无处不在。将在答案中发布我的 .gitignore。

标签: .net git gitignore


【解决方案1】:

我不确定为什么这对你不起作用。如果有帮助,这里有一个来自我的 Visual Studio/git 项目的典型 .gitignore 文件:

*.suo
*.user
_ReSharper.*
bin
obj
packages

【讨论】:

  • 我还添加了packages,因为您可以轻松地从 NuGet 重新下载它们
  • 当您首先提交所有文件然后将 .gitignore 文件添加到您的 repo 并提交时,它不起作用。新忽略的文件仍将显示为已修改(例如,如果您重建)。
  • 我最近使用了这里找到的建议的 .gitignore 文件:github.com/github/gitignore/blob/master/VisualStudio.gitignore 非常成功。
  • @BigTFromAZ 您应该添加它作为答案,它比接受的要好得多!
【解决方案2】:

仅仅在 gitignore 中创建条目可能不会忽略文件,您可能需要提交它。我使用了以下方法并为我工作

git rm -r --cached .

git add .

然后

git commit -am "Remove ignored files"

但是,这会忽略我稍后包含在存储库中的脚本文件夹。

【讨论】:

  • 它工作正常。但是 Vscode 找不到修改后的代码。我自己改变了一些东西,我把它推给了 origin master。然后它起作用了。 :)
  • 我有一个包含许多项目的解决方案,出于某种原因 git add 。永远不会完成。
  • Great Arvind!,一个新手开发者将所有 bin/ 和 obj/ 合并到我们的工作分支(跳过策略......我不知道怎么做!)这是删除所有这些文件的方法来自回购。
  • 新手我(至少对 git),我对自己做了这个。从来没想过 rm 然后加回来,因为我不明白 git rm 只从索引中删除项目而不是磁盘。因此,如果我理解正确,您的前两个命令通过从索引中删除所有内容并重新添加所有内容,应用 .gitignore 过滤器来重建索引。然后提交使它在存储库中如此。非常聪明。
  • 太棒了!这对我来说非常有效。所有 .vs、obj、bin 和其他被忽略的文件。
【解决方案3】:

更新

最近更新 Visual Studio 2019 后,以下选项不可用。 或者,您也可以从以下位置复制最新的 gitignore 内容。 https://raw.githubusercontent.com/github/gitignore/master/VisualStudio.gitignore

原答案

如果您使用的是 Visual Studio,那么有一种简单的方法可以做到这一点。

  1. 打开团队资源管理器
  2. 点击设置
  3. 存储库设置
  4. 在忽略和属性文件部分下 点击忽略文件旁边的添加。

它将创建一个默认的 .gitignore 文件,该文件将忽略框架/语言将使用的大多数常见文件夹和文件。

【讨论】:

  • 这正是我想要的。谢谢。
【解决方案4】:

如果您之前已提交 bin 和 obj 文件夹,将它们添加到 .gitignore 不会自动删除它们。 您需要提交删除这些文件夹,例如 git rm -rf objgit rm -rf yourProject/obj 然后提交删除

【讨论】:

    【解决方案5】:
    • 在 Windows 资源管理器中找到 binobj 文件夹
    • 右键单击 TortoiseGit > 删除并添加到忽略列表 > bin
    • 右键 TortoiseGit > 删除并添加到忽略列表 > obj

    【讨论】:

      【解决方案6】:

      我让一些新开发人员将他们的 OBJ 和 Bin 文件签入到存储库中。 即使我有 git ignore 来排除这些文件,它在我的本地仓库中也不起作用。

      我做了以下来解决这个问题

      1. 从存储库中删除了 Bin 和 Obj 文件夹。
      2. 也从我的本地存储库中删除了 bin 和 obj 文件夹。
      3. 创建/更新 gitignore 并保存(如果尚未完成)

      如果您在 repo ex 中还有其他用户特定文件:Visual Studio 中的 .suo 完成上述操作后,您可以将它们添加到 gitignore 文件中。

      我在浪费了一点时间后发现了这一点,希望这对同一场景中的某些人有所帮助。

      【讨论】:

        【解决方案7】:

        尝试添加不需要的文件夹的名称,git 永远不会直接从前面提到的根目录中获取这些更改。尽管将这些文件夹名称添加到 .gitignore 中,但这对我有用:

        bin
        obj
        packages
        

        【讨论】:

          【解决方案8】:

          如果您想在所有项目中忽略 bin 和 obj,则可以使用(来自 gitignore man page

          从配置变量 core.excludesfile 指定的文件中读取的模式。

          core.excludesfile 可以在 Unix 中的 ~/.gitconfig 配置文件中设置 - 我不知道它在 Windows 下的位置

          【讨论】:

          • 好信息,但他的意思是他在此解决方案中的所有 Visual Studio 项目,而不是机器上的所有项目。
          • 尽管他很可能永远不会对在任何解决方案中提交 binobj 文件夹感兴趣。 :)
          【解决方案9】:

          @Raphael Pinel 是绝对正确的。如果文件已经在 Git 存储库中,.gitignore 将不起作用。

          我使用 VS2019 和 Azure DevOps 作为我的 Git 存储库。这是我修复它的方法。

          在 Visual Studio 中,添加 .gitignore 文件(如有必要)并将该文件推送到存储库。

           Team Explorer->Changes->Right Click
           .gitignore->Stage.
          

          然后分阶段提交,然后同步。 转到 Azure DevOps 网站。
          从 Git 存储库中删除 bin/obj 文件夹。 在 Visual Studio 中,

          Team Explorer->Changes->"Undo Changes" to those folders.
          Team Explorer->Synch->Pull to update local Git repository.
          

          您现在可以构建您的项目,Git 将忽略 .gitignore 文件中指定的文件夹。

          【讨论】:

            【解决方案10】:

            如果您尝试通过源代码树但仍然没有进入忽略文件,请转到工具-->选项->Git,然后选择 .gitignore 的位置

            【讨论】:

              【解决方案11】:

              在我的例子中,bin 和 obj 文件夹嵌套在根 .gitignore 文件的 Project 文件夹下,所以我必须像下面这样添加它:

              [PROJECT_FOLDER_NAME]/bin
              [PROJECT_FOLDER_NAME]/obj

              将 PROJECT_FOLDER_NAME 替换为您的项目文件夹名称

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2021-09-13
                • 1970-01-01
                • 1970-01-01
                • 2016-04-09
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多