git撤消:我们可以做得更好

2021-06-21 23:58:05

Git是一种具有强大的潜在原则的版本控制系统,但新手用户令人害怕。当他们犯错时,许多人宁愿删除并重新克隆存储库,而不是尝试解决它。即使是熟练的用户也可以发现通过繁琐的回归。

为什么?在一个应该永远不会失去数据的系统中,如何易于“丢失”数据如何?

嗯,这并不是太容易失去你的数据 - 而是恢复它太难了。对于您要恢复的每个操作,有一个不同的“魔法”咒语来撤消它。所有数据都在原则上仍然存在,但在实践中也无法访问。

这是我的理论:如果他们不怕犯错误,新手和中间用户将显着提高他们的理解和功效。

为了解决这个问题,我提供git撤消,部分git-bancless of工具套件。据我所知,这是目前可用于Git的最有能力的撤消工具。例如,它可以轻松撤消糟糕的合并和重新组播,并且甚至有一些罕见的操作,Git撤消可以撤消,它无法与Git Rhallog撤消。

我在下面提出了演示,并简要讨论了物品末尾的实施。我的希望是,通过使其更容易解决错误,新手Git用户将能够更自由地进行实验,并更有效地学习。

Git撤消通过最近添加到Git:参考交易钩子。这钩子触发了更改的参考,例如分支。通过录制所有参考移动,我们可以在任何前一点的时间内重建提交图的状态。然后,我们通过将所有引用及时恢复到其先前的位置(可能在过程中创建或删除引用)来完成撤消操作。

我最初建立了Git-Brancless,以便复制某种Mercurial工作流程,但数据结构变为灵活,足以为我们提供Git撤消功能。 您可以在项目的架构页面上找到更多详细信息。