如何从Azure DevOps仓库中删除项目二进制文件

113次阅读
没有评论

问题描述

在Azure DevOps中有一个现有的仓库,目前正在跟踪各种/obj、/bin文件(.dll、.pdb、.cache等)。用户不想再跟踪这些文件了,但是担心如果从仓库中删除这些文件,当尝试使用流水线发布项目时,项目会出现问题。这些文件是否可以安全排除和删除,还是需要手动在某个地方包含它们?用户对这些文件是如何生成和使用的没有很好的理解。谢谢。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

解决方案1

不要将生成的二进制文件存储在git中。Git会将每个二进制文件的每个版本都作为一个完整的新版本存储,而不仅仅是更改部分。你的项目必须设置为可以在任何地方重新构建二进制文件。
然后,在流水线中,你的代码将被复制到第二个目录结构中,项目将为你构建并生成二进制文件。然后进行单元测试和其他流水线操作。
以下是从仓库中删除二进制文件的步骤:
1. 使用git rm命令从仓库中删除二进制文件(可选)。
2. 使用git filter-branch命令从旧的提交中删除二进制文件。
3. 使用git gc --prune=now命令从.git目录中进行垃圾回收,清理二进制文件。
请注意,这些操作将从仓库中删除二进制文件,但不会影响项目的构建和发布过程。项目将在流水线中重新构建并生成所需的二进制文件。

解决方案2

如果你不想从仓库中删除二进制文件,你可以将它们排除在git的版本控制之外。这样,这些文件将不再被git跟踪,但仍然存在于仓库中。这样做的好处是,你可以在需要时手动包含这些文件,以确保项目的构建和发布过程正常进行。
以下是如何排除二进制文件的步骤:
1. 创建一个名为.gitignore的文件,将以下内容添加到文件中:

# 排除二进制文件
*.dll
*.pdb
*.cache
  1. .gitignore文件添加到仓库中,并提交更改。
    这样,git将不再跟踪这些二进制文件,并将它们排除在版本控制之外。但请注意,这些文件仍然存在于仓库中,只是不再受git的管理。在需要时,你可以手动将这些文件包含到项目中,以确保构建和发布过程的正常进行。

正文完