【问题标题】:What is the most sane method to keep repository history small? [closed]使存储库历史保持较小的最明智的方法是什么? [关闭]
【发布时间】:2012-06-20 06:33:23
【问题描述】:

我知道存储历史记录更适合为 vcs 保留,我知道 git 允许克隆的不是完整的历史记录,但是:

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

然而我不能完全理解为什么我想要它,但我尝试一下:我想分叉这个(自动)存储库并使用 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 存储库的历史很小。

【问题讨论】:

  • "通过脚本自动提交处理" ? “仅在历史上的最后 10 或 5 次提交中”?你确定 git 是适合你的工具吗?您似乎没有将其用作vcs
  • 不,我不确定。但这是另一个问题。我意识到我需要考虑替代方案。
  • 复杂的东西并不意味着它毫无用处。通常情况正好相反。如果您发现这些命令是您所需要的,请创建一个为您执行任务的脚本。 Abracadabra,复杂性消失了。

标签: git github history


【解决方案1】:

你的做法大错特错。

VCS 可帮助您保存代码历史、合并编码人员的工作、管理分支、检索旧版本、查找错误的根源、测试新策略等等。它在备份代码方面也很有用,但这远非它的唯一功能。

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

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

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

【讨论】:

  • 然而我无法完全理解为什么我想要它,但我尝试了一下:我想分叉这个(自动)存储库并使用 git merge(是的,作为一种工具)来处理它并让自己与上游保持同步。所以在这种情况下,我将正确使用 git。理想情况下,我必须在没有这个自动化上游存储库的情况下完成“git merge”的工作,但这是另一项任务。
  • 我不确定我明白你的意思。但是要评论:如果您是唯一的编码员并且不创建分支,则不必使用合并。要发送到服务器,请克隆您的存储库,将克隆的存储库放在您的服务器(或 github)上,然后使用推送将您本地提交的工作发送到这个远程存储库。
  • 我从 rsync 派生 git 存储库,为自己派生它并让自己保持最新状态。
猜你喜欢
  • 2018-06-16
  • 1970-01-01
  • 1970-01-01
  • 2022-01-21
  • 1970-01-01
  • 2011-06-16
  • 2013-01-29
  • 1970-01-01
相关资源
最近更新 更多