使用git作为R& D工具

时间:2017-04-27 18:29:22

标签: git

这是一个熟悉的场景。

你有自己认为的好主意。实现它将需要去除您当前的代码库。它可能有效,也可能无效,可能有效,但效率低等等。

如果有效,您将继续使用新代码。如果没有,您将在实验之前恢复代码 - 但是您将继续进行实验以供参考。

您有几种选择:

  1. 您可以提交实验代码,然后提交undo提交或revert提交前一次提交。
  2. 你可以分支,即使事后,然后merge实验代码(知道你不会有冲突)或者只是忽略分支并继续在主干上。
  3. 如果实验证明没有持久的优点,另一种选择就是简单地discard更改。
  4. 让我们离开协作甚至远程存储库。考虑仅使用本地存储库处理独奏项目的情况。

    git分支正是你需要的吗?在git中是否有另一个更符合这种需求的设施?分支过度杀伤并恢复到之前的提交是否足够?在这里,我们假设您在实验期间不会继续在主干上进行开发。

    R& D场景中建议的工作流程是什么,例如此处描述的那种?

1 个答案:

答案 0 :(得分:1)

是:2。

Git分支正是您所需要的。对于分支机构来说,Git非常非常好。

在git中,分支是轻量级的。分支是git中的主要功能,它驱动它拥有的所有令人难以置信的功能 - 与其他一些存储系统相比,分支是重量级的,或者是后期的,或根本不存在。分支机构从不过度杀伤。

即使只是在git中创建一个新分支,也不要犹豫。创建是即时的,占用零资源。在将它合并回public static bool HasBase(int b, int n) { // find all factors of b var factors = new List<int>(); var dividers = Enumerable.Range(2, (int)Math.Round(Math.Sqrt(b) + 1)).GetEnumerator(); dividers.MoveNext(); while (true) { if (b % dividers.Current != 0) { if (dividers.MoveNext()) continue; else break; } b /= dividers.Current; factors.Add(dividers.Current); } // if the base of each power can be divided by 3, a^n=b should be true. return multiples .GroupBy(x => x) .All(g => g.Count() % 3 == 0) } als后永远保持分支是零成本,因为无论如何它都不可能删除实际历史,因为它现在是master的一部分,即你是一个分支不太可能删除。您可以删除它们当然,它只会删除名称而不删除实际历史记录 - 如果您对(G)UI中的分支名称太多感到困惑,则非常有用。

分支所产生的唯一代价就是在将其合并回master(或者进入另一个永久分支)之前保持提交它的活动。因此,如果你真的碰巧拥有一个拥有令人难以置信的大空间使用量的分支,你肯定不会再需要它,那么请确保在一段时间后删除它。但实际上,我并不认为这是一个问题;除非您碰巧将大图像或其他二进制文件提交给它。