【发布时间】:2014-09-29 22:09:12
【问题描述】:
情况:
我有一个主仓库,其中有一个主开发分支和许多从它发芽的“实验”分支(例如,exp1 和 exp2)。这些实验分支的目的是充当生成数值结果的实验的占位符。我记录了实验分支的分支名称(和提交 ID),以便我可以返回到提交以准确查看结果背后的代码和历史记录。
但是,现在有太多的实验分支,以至于很难看到主树。因此,我正在重新考虑将占位符保留在每组结果(即每个实验)背后的代码的策略。显然我可以只保存每个分支的工作目录,但最好保留提交历史。
可能的解决方案:
解决此问题的一种方法是将实验分支移动到它们自己的独立存储库中,每个存储库都植根于 dev 分支的提交历史记录中相应节点的子节点。这是我的意思的说明:
点击here查看大图(在imgur.com上)。
因此,例如,对于分支 exp1,我想将提交 A->B->C 导出到以提交 A 为根的单独存储库。然后,我可以只记录提交P1 的哈希值,这样我就知道exp1 分支是从哪里下来的。
问题:
我该怎么做?
更好的问题:
另一方面,我强烈怀疑有一个更好的策略来做我想做的事情——即整理树以进行目视检查,但将占位符保留在先前的分支上,以便我可以在需要时返回它们。那么,任何人都可以为此推荐一个策略吗?
【问题讨论】:
-
我只保留一个单独的“归档”远程存储库,将旧分支推送到该存储库,然后从本地存储库中删除它们。
-
@Ajedi32 这听起来是个好主意。我怎么能从我的 git log 命令中排除那个远程仓库?例如,我通常运行
git log --oneline --graph --decorate --all。如何修改这个 git-log 命令以 not 显示给定的遥控器? -
好问题。现在,我自己不这样做,所以我不确定。如果你发现了,一定要告诉我。 ;-)
-
另外,对于您提出的解决方案,您可能需要查看
git replace -
只是一个问题:听起来好像你保留了 exp 分支,以防你以后需要找到提交。为什么不直接标记它们,而不是保留分支?
标签: git git-branch git-branch-sculpting