git - 保持存储库历史记录较小的最明智的方法是什么?

标签 git github history

我知道存储历史记录最好保留在 vcs 中,并且我知道 git 允许克隆不完整的历史记录日志,但是:

  • 恐怕 GitHub 空间有限(主要原因)
  • 它是通过脚本自动提交处理
  • 我只对历史上最后 10 或 5 次提交感兴趣
  • 服务器空间可能有限

然而,我无法完全理解为什么我想要它,但我尝试一下:我想 fork 这个(自动)存储库并使用 git merge (是的,作为一个工具)来处理它并让自己保持更新与上游。所以在这种情况下我会正确使用git。理想情况下,我必须在没有这个自动化上游存储库的情况下实现“git merge”的功能,但这是另一项任务。

目前我只发现使用 git rebase 清理所有历史记录的棘手方法

git checkout --orphan temp $1
git commit -m "Truncated history"
git rebase --onto temp $1 origin/master
git checkout master
git branch -D temp

但这既复杂又无用,创建新存储库并直接将文件推送到那里会更容易。因此需要一些东西来保持 git 存储库历史记录较小。

最佳答案

你的做法是非常错误的。

一个VCS帮助您保留代码的历史记录、 merge 编码器的工作、管理分支、检索旧版本、查找错误的根源、测试新策略等等。它对于备份代码也很有用,但这远不是它的唯一功能。

您似乎只是对 git 作为保存最近工作的工具感兴趣。这根本不是 git 致力于做的事情。

你的论点无效。如果您仅将代码(以及参数化和小型资源)存储在 git 中,则不会面临 github 存储空间或任何类型的服务器空间爆炸的风险。我在git上有很多项目,有很多编码员,占用的空间可以忽略不计。您不应该仅仅为了节省空间而尝试删除历史记录。

如果您正在编码,正常使用 git,尊重其最佳实践,您不会后悔,因为它是一个非常有值(value)的工具。

关于git - 保持存储库历史记录较小的最明智的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11114027/

相关文章:

macos - 在 Mac 上,我在哪里可以找到 git-http-backend?

git - 重写 git 历史以解压缩压缩的提交

git - 如何使用 rebase 编辑推送的提交消息?

git - 将 Git 提交差异发送到 Gist 文件

assembly - 为什么有这么多不同的调用约定?

c++ - C++ 中 push_back 的词源是什么?

svn - 你能将修订与 Subversion 结合起来吗

git - 在 IntelliJ IDEA 中为现有项目添加 GIT 支持

git - 如何为选定的提交(状态)保留第二个 git 远程存储库

python - 在 python 中使用 git 子模块