鉴于以下情况:
我有一段代码——一个相当复杂的文件——我正在积极处理,我经常保存/提交/同步。也许甚至过于频繁,但那是另一回事了。
假设我的提交版本由字母“A”到“Z”表示,其中“A”是第一个提交,“Z”是最新的。
在处理代码的过程中的某个地方,我无意中引入了一个导致它停止工作的错误,但我不知道在那个提交历史中我不小心弄坏了我的代码的确切位置。
问题#1:
是否有可能以某种方式“遍历提交链”(可以这么说)并选择一个特定的提交(例如“W”),抓住它,把它带入工作区,然后尝试.
不,“W”也不起作用。让我们试试“J”。啊!“J”有效,但为时过早,仍然有不同的错误,让我们试试“N”。. .
最终我(希望)在问题之前找到提交。
问题 2:
假设我可以遍历提交链,并且我发现有问题的版本 - “R”有效,但“S”失败 - 我可以以某种方式“倒回”提交历史 - 或做点什么 - 以清理我周围的跳跃已经完成并达到“R”现在是当前版本的地步?
问题 3:
假设问题 1 和 2 让我达到了我想要“扎根”的地步,我是否应该和/或是否需要重新设置基准以平整我的提交历史?
问题 3a:
Git-Lens 提供了在特定时间点“签出”特定修订版的能力。
我,(有点)理解“检查某些东西”的想法,但我从提交链末端的某些内容的上下文中理解这一点,而不是中间。
如果我当前的修订版(最后一次提交)是“Z”并且我“签出”修订版“Q”,会发生什么?它会改变我的修订历史吗?如果它没有帮助,我可以“放回去”并得到其他东西吗?
这对我的工作空间有什么影响?如果“file_x.js”是有问题的文件,当前版本是“Z”,我检查了修订版“Q”,我的工作区中有什么文件可以运行?
谢谢!