替换GitHub repo,同时保留问题,wiki等



我在GitHub上有一个repo,有很多问题。我想用一个新的代码库替换掉那个回购库的所有代码库,但我想保留所有以前的信息。

在不弄乱代码或GitHub的情况下,最好的方法是什么?

  • cd到"new"repository
  • git remote add origin git@github.com:myusername/myrepository(取代myusername &相应地myrepository)
  • git push --force origin master
  • 可能会删除其他远程分支并推送新的。

这将强制用本地存储库中的所有内容替换远程存储库中的所有内容。要小心,没有回头路。

由于git push --force origin master不保留旧项目的代码提交,我认为这个问题需要另一个答案。我已经为一个Android Studio项目做了一个答案,但是完全使用Git并没有太大的不同。

我将调用GitHub上的旧项目,您想要替换MyProject

备份您的新项目

重命名当前项目(或将其复制到新位置并删除具有原始项目名称的文件夹)。我们将把旧的项目版本从GitHub克隆到这个位置。

从GitHub克隆旧项目

进入项目所在目录并运行

git clone https://github.com/username/repo.git

username替换为您的GitHub用户名,repo替换为您的存储库名称。

删除所有旧文件

你可以试试

git rm -r *

但如果这不起作用(因为它不适合我),然后用rm或文件管理器手动删除它们。但是,不删除 .git文件夹和.gitignore

如果你手动删除它们,你需要更新git。

git add -u
git commit -m "deleting old files before adding updated project"

添加新文件

从新项目中复制之前备份的所有文件。现在让git知道你想把它们添加到仓库中。

git add .
git commit -m "new updated project"

将更改推送到GitHub

git push

现在你的新项目将在GitHub中,但旧项目的提交历史记录仍然可用

我用下面描述的方法解决了类似的问题。

假设:

  • "旧项目"是在GitHub repo
  • "new project"在本地创建

的期望:

  • 新项目必须推送到github上的旧仓库
  • 旧的提交历史必须保留并在github
  • 中可见

解决方案:

1)进入本地机器的"old project"文件夹

2)找到隐藏的"。然后复制它

3)进入你机器上的新项目文件夹

4)检查是否有一个。git文件夹(它是隐藏的,所以你需要显示隐藏文件)-如果有一个。git文件夹,重命名它,你可以删除它,但如果一切按计划进行,最好现在重命名并删除它-如果没有。git文件夹,转到下面的第5点。5)粘贴之前复制的。git文件夹(从旧项目)并粘贴到"新项目"文件夹

现在新项目有了一个.git文件夹,里面有以前所有的修改和历史记录,包括对GitHub上旧版本的URL的引用。

6)如果你正在使用例如VS,你可以检查代码中的变化。会有很多,或者到终点站检查。您可以检查旧文件是否已删除,新文件是否已添加。

7)推动实际新项目。这个新项目将被推送到你在GitHub上的旧仓库。在网上检查你的git仓库,以确保一切顺利。

8)现在你可以从本地机器中删除旧的项目,并删除这个重命名的新git隐藏文件夹(它在第4点被重命名)。

现在你可以开发你的新项目,保留所有旧的历史。

希望能有所帮助。

将旧的.git文件夹复制到新文件夹中。然后像往常一样执行push流程(git add, commit, push)

最新更新