【发布时间】:2014-10-05 04:09:31
【问题描述】:
问题
在开发实验性代码时,我有时会提交导致死胡同的更改。然后我想回滚到以前的版本,重新开始。但我不知道如何做到最好。
示例 - 问题
假设我们在分支A 中有以下结构:r1 -> r2 -> r3 -> r4 -> r5
然后我意识到,这是一条死胡同,想从r3重新开始。
示例 - 方法
在我看来,以下最终存储库结构是理想的,但如果我错了,请纠正我:
Branch A: r1 -> r2 -> r3 -> r4_new -> ...
\
Branch A_dead_end: `-> r4 -> r5
问题
处理死胡同回滚的最佳做法是什么?请同时更正我的措辞,因为我不知道要搜索什么术语。 我对 Git 和 SVN 的解决方案感兴趣。
【问题讨论】:
-
旁注:在 git 中,所有的箭头都指向另一个方向。分支标签指向最新的提交,它指向每个更早的提交,直到你到达
r1,它只是说“没有更早”。这是必要的,因为提交是永久不可更改的:您创建r2指向任何地方,但之后您永远无法更改它,因此您无法使其指向尚不存在的r3。所以将r2指向r1,然后创建r3指向r2等 -
感谢您的信息,我不知道。但是我不确定是否有更好的显示方式。我想用一个统一的符号来表示所有版本控制系统。只是离开箭头?我认为这不是一个好主意。
标签: git svn version-control dead-code