我克隆了这个仓库(https://github.com/zendframework/ZendSkeletonApplication)并开始对其进行更改。因此,如果您查看日志图,我的更改是最新的,其次是repo的原始历史记录。回购有巨大的历史(超过350次提交),我不完全确定它是否对我有用。我想重新开始。
所以,有两个问题:
问题1:
我如何重做(rebase?)回购,以便在我开始对其进行更改之前,我只拥有回购的最终副本,我的更改在其上面,并且没有回购的巨大原始历史记录? Aka假装我下载了repo,做rm .git
,然后git init
,然后在它上面播放我的更改,除了我之前没有这样做。
问题2:
做我在问题1中提出的问题是一个好主意吗?为什么或为什么不 - 你能给我两面硬币吗?
问题2a:
我可能会最终破解我的回购副本中的所有内容,所以无论我走哪条路 - rebase还是not-rebase,我甚至不确定我是否需要从原始回购中提取任何更改,如果它提前因为我自己的变化很大。但是,如果我想将原始回购中的任何重大更改添加到我的副本中,那么如果rebase vs不重新复制我的回购副本会怎么样?我知道,如果我没有改变,我只会做一个git pull
。但是,如果我做了反思,我该怎么办呢?
更新:
我可以重做整件事吗?重新下载,rm -rf .git
,然后是git init
,并且从此过上幸福的生活?
答案 0 :(得分:0)
您可以将所有旧提交压缩到一个初始提交中,就像您已经开始使用导出而不是克隆一样。见http://git-scm.com/book/en/Git-Tools-Rewriting-History
查看交互式rebase和squash选项。
至于问题2,当然。你很少会关心骨架应用的历史。您的更改会立即发生变化,因此未来的更改几乎不可能与您基于它的应用程序相关。