【发布时间】: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,复杂性消失了。