Git 本地备份源的自动版本控制
当使用版本控制系统时,人们通常会产生“干净”的提交,即实际上有意义的、可编译的提交(对于其他开发人员来说,这很好) 这样做的自然结果是,提交通常很晚才完成(“当它工作时”) 它减轻了版本控制的一个好处:能够恢复到“它曾经工作过”的状态,并且不会删除大量尚未提交的代码 Eclipse对此有一个内置函数(本地历史),但它依赖于IDE 流行的VCS(git、mercurial..)有没有类似的机制,可以作为扩展/插件 理想情况下,它不会干扰主提交历史记录,而是维护一个并行的“未提交更改的历史记录” 如果这样的东西不存在,我可能会想写一本 澄清: 我很了解本地分支+重基或histedit,但我要求提供一个自动化且易于安装的解决方案。如果我必须经常提交,我可能会忘记/懒得去做,特别是如果它意味着以后对每个真正的提交进行手动清理(重基部分)。Git 本地备份源的自动版本控制,git,mercurial,versioning,Git,Mercurial,Versioning,当使用版本控制系统时,人们通常会产生“干净”的提交,即实际上有意义的、可编译的提交(对于其他开发人员来说,这很好) 这样做的自然结果是,提交通常很晚才完成(“当它工作时”) 它减轻了版本控制的一个好处:能够恢复到“它曾经工作过”的状态,并且不会删除大量尚未提交的代码 Eclipse对此有一个内置函数(本地历史),但它依赖于IDE 流行的VCS(git、mercurial..)有没有类似的机制,可以作为扩展/插件 理想情况下,它不会干扰主提交历史记录,而是维护一个并行的“未提交更改的历史记录” 如
主要目标是为开发人员提供一个安全网,人们通常意识到他们需要这个安全网,就在他们已经坠落的时候…我不知道有任何工具可以做到这一点,但你可以使用Git来实现 创建一个本地分支并处理它(经常提交、恢复等)。 一旦您对这项工作感到满意,就可以使用
git-rebase-i
将所有的小提交压缩成一个(或多个)大提交到您的开发分支中。您可以(在Mercurial,f.e中):
- WIP提交的分支,在该分支中,您提交脏工作并仅在某个“稳定点”之后将此分支合并到主线中,并且只有这些合并集应该是其他人感兴趣的(使用
而不是默认的“push all”,您不会发布任何未完成的工作)push-b$mainline
- (或),其中一组补丁|队列中的补丁是您当前的工作(且未共享|发布),抛光补丁转换为永久变更集并成为(可推送)历史的一部分
另外,不要太担心evolve扩展的“实验”状态。它经过了很好的测试。您看过任何分布式VC系统吗?我很确定git(等)的本地分支与您所寻找的非常接近。也许可以在上面撒一些自动化帮助(cron等),为什么不创建一个垃圾分支,在那里你可以做一些测试,甚至提交不好的不可编译代码呢?你在这个分支工作,如果它到了某个地方,你可以将它合并到主分支中,否则它就会变成垃圾。你仍然需要承诺,但因为你不在乎承诺不好的事情,你可以经常这样做。“晚而好的承诺”是今天不好的风格和反模式