当我第一次进入VC时,我使用SVN并且不理解我在做什么。我在单独的中继上维护了一个项目的不同部分,但会一次提交所有中继,导致多次提交相同的提交消息。大约两年前,我醒来时把所有的树干都sm成了一根树干,然后再次醒来,并将回购变为git。现在我有一个快速,灵活的回购与少数分支机构,我不能更高兴...重写历史记录以删除重复的提交消息
...除了所有这些旧的,重复提交消息正在窃听我。 (在我的回购中,它们构成了约1/3-1/2的提交)。这正是git rebase
的目的,对吧?我尝试了一批重复测试,除了它看起来像是将我的master
分支与其他所有分支分开之外,它的工作原理。我用git rebase -i <sha>
做到了这一点,并将所有重复提交压缩到第一个。我想保持我的分支结构完好无损。
所有我想压扁的重复邮件都出现在我进行svn=>git
转换之前,并且所有分支都在转换后启动。也就是说在svn=>git
转换之前的整个历史记录是线性的,没有分支。
另一个警告 - 这是一个很大的 - 是这个回购已被推到远程回购。我知道为共享回购重写历史记录是个坏消息,但我只是在考虑它,因为还没有人从我的远程设备克隆或分支。我希望在将其提供给克隆/分叉之前清理历史记录。
那么有没有一种方法可以将历史记录重写为某一点,并保持其余的不变?任何其他的建议,以帮助我清理这个烂摊子?
Ewww。看起来,单独留下足够的空间是去这里的方式。谢谢。 – Clayton 2013-03-14 20:44:21