迁移到新的git repo在某一点后面留下旧的repo

时间:2017-02-12 20:19:22

标签: git github

我有一个项目并开始研究新版本。到目前为止,该项目与以前的版本完全不同,只是它与旧版本的功能相比很少,而且它们都不是API。

我想将自最近发布以来发生的更改转换为新的存储库。在开始重构之前,我想把旧存储库留在状态中。

我可以简单地在新存储库中进行初始提交,然后强制还原旧存储库。但我怀疑这会在社区中强烈反对。

我怀疑还有一种关于HEAD的方法。我对Origin master进行了所有更改,因为它是一个小型库。

1 个答案:

答案 0 :(得分:1)

git存储库可以指向不同的远程存储库。

您很可能只定义了origin,您可以按以下方式列出:

git remote show

在github上,您可以创建一个干净的存储库,例如your-user/new-remote-repo.git。 (选择不要:"使用README&#34初始化此存储库;。)

然后在您的本地存储库中,您可以添加新的远程:

git remote add new-remote-repo git@github.com:your-user/new-repo.git
git push -u new-remote-repo master

为了及时重置当前存储库,您只需签出相关提交并强制推送它。

git checkout master
git reset --hard your-hash
git push --force origin master

我建议不要重写已经发布的主人。由于其他人可能已经依赖于您的master分支,他们可能会遇到冲突状态导致混淆。

我宁愿在旧存储库中创建指向最后一个工作状态的last-relase标记,并在Readme.md中将其声明为最终版本。