【问题标题】:How to use .jar tool BFG Repo Cleaner and reduce git repository?如何使用 .jar 工具 BFG Repo Cleaner 并减少 git 存储库?
【发布时间】:2016-05-05 11:52:42
【问题描述】:

我有一个很简单的问题,但我找不到答案。我是一名动画师,在 Unreal Engine 4 上工作,并使用 Source Control、Bitbucket 和 Source Tree 在当前项目上进行协作。我的编码专业知识在 php 和终端上画了一条线,让我无休止地害怕。我在减少 git 存储库大小方面进行了大量研究,并取得了一定的成功。

案例: 我的存储库空间不足(可能是因为每次使用 UE4 都会保存一百万个自动保存文件)并且需要删除一些文件。

我的发现:

显然,git 存储库中的文件并不意味着可以轻松删除(也许是为了安全)。似乎没有办法只去存储库突出显示一些东西并点击删除。然而,到目前为止,我在 StackOverflow 中发现了两个有希望的线索。

  1. 来自Sam Watkins 的这段很棒的代码给了我一些很好的结果:http://sam.nipl.net/b/git-gc-all-ferocious
  2. 许多人建议使用名为 BFG Repo Cleaner 的工具。

我想知道的:

  1. 根据我的阅读,BFG 似乎是最快和最有效的 减少存储库的解决方案。这是一个准确的 评估?

  2. 网上有很多关于如何使用该工具的资源,(such as this one) 但没有一个能回答我的问题(我想非常基本) 问题。下载后,我该如何处理该文件?我只是 双击它? .jar 文件是否需要位于特定位置? 我必须运行它然后按照说明操作吗?

我的尝试:

  1. 我双击它,它似乎已经运行,但它没有效果。

  2. 我尝试运行几篇演练文章中的代码 sn-ps (包括我上面链接的那个)通过终端使用 源树的终端按钮并替换所有占位符 url 在复制的代码上使用我的,但任何包含 单词 bfg.jar 失败。我在网上为该工具找到的所有代码 在终端中返回“找不到命令”消息,这不是 令人惊讶的是,该工具就在我的下载文件夹中。

  3. 我看过“使用 .jar 文件”的文章,但我只能 find 似乎对编码此类文件比运行更感兴趣 他们,所以,我不知所措。

提前感谢您的任何帮助。

干杯, 奥马尔

【问题讨论】:

  • 您使用的是 Windows、Linux 还是其他操作系统?
  • 我在 iMac 上运行 El Capitan
  • 不幸的是,我不熟悉这些系统。简短的回答是,您需要安装命令行 Git 并安装 Java 才能使 jar 工作。
  • 嗯...那太糟糕了。感谢您的帮助。我很确定我一直在通过终端运行命令行 Git,就 Java 而言,BFG 需要我之前下载过的 Java 6 或更高版本(对于我运行的某些游戏来说这是必需的),所以我知道我有这两件事都涵盖了,除非我必须做一些事情才能在终端上运行 Java,而不是运行 Java 安装程序。

标签: git jar repository sourcetree bfg-repo-cleaner


【解决方案1】:

在终端中运行的程序的说明中,对终端新手很有帮助,但几乎永远找不到:

  • 您需要指定要运行的文件的确切名称。就我而言,最新版本是bfg-1.12.15.jar。要么将文件重命名为 bfg.jar(但如果以后你想知道你拥有的版本,你可能不想这样做),或者你就这样输入它。
  • 您需要指定要运行的文件的确切路径。就我而言,它位于我的 Ubuntu 系统的主文件夹中,即根文件夹,并用波浪号 ~ 表示。所以,我这样输入命令:java -jar ~/bfg-1.12.15.jar。您可以通过从根文件夹开始并用正斜杠指示嵌套在其中的文件夹来指定任何路径,例如~/Music/Funk/James_Brown/get-on-up.mp3。如果操作系统知道在哪里可以找到该程序,该程序将在任何地方运行。
  • 您需要位于您希望程序执行其工作的目录中,然后从那里运行它。要更改目录(也称为文件夹),命令为cd,然后您指定如上所示的路径。
  • 要在遇到困难时获得帮助,您需要查找有关如何使用终端或如何使用 bash 的文章。这告诉你你需要的一般介绍性的东西。

【讨论】:

  • 嘿,金。我知道这是一篇旧帖子,但我错过了它,它实际上对刚接触它的人很有帮助。我不知道这是否能解决我的问题,因为我们已经完全离开了 git 以完成我们的工作流程,这就是为什么我没有将它标记为正确答案但我确实赞成它,因为它充满了我的东西希望我当时就知道。谢谢。
  • @user3389654 谢谢。对于在终端中完成的操作,我仍然很难按照说明进行操作,因为我误解了约定,例如 [this] 或有时 {this},以及引号等。我发布这个答案部分是为了摆脱我的胸膛。干杯。
【解决方案2】:

自 v1.12.5 起,BFG 至少需要 Java 7。没有 UI,因此您需要熟悉从命令行运行它,但有足够的文档可用于在 website 上取得成功。双击 jar 文件将无法到达任何地方。

一旦您从命令提示符运行java 版本 7,只需运行:

$ java -jar bfg.jar

...生成用法/选项,或参考网站。

回答您的问题 1),在其方法所施加的限制范围内,BFG 确实是我所知道的最快的工具,用于在删除文件的同时重写历史记录。

【讨论】:

    【解决方案3】:

    转到复制此bfg.jar(新版本名称不同)的目录并运行以下命令:

    java -jar bfg-1.13.0.jar --strip-blobs-bigger-than 50M <Cloned GitRepo Path>

    【讨论】:

      【解决方案4】:

      1) $ java -jar bfg.jar --replace-text replacements.txt my-repo.git 一旦我们运行此命令,它将自动提交到 GitHub,或者我们需要在更改后显式提交它。会不会影响到 Develop / Master 等所有分支?

      2) $ java -jar bfg.jar 我们可以从任何位置运行这个 Jar 吗?或者我们应该下载它的任何特定位置。

      【讨论】:

      • 这是一个问题,而不是一个答案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 2014-10-17
      • 1970-01-01
      相关资源
      最近更新 更多