如何在git存储库中“取消”或将文件从一个存储库移动到另一个存储库

时间:2011-09-05 19:15:51

标签: ruby-on-rails git

我有一个目前使用rails 2.3.11的大型rails项目,我想将它迁移到rails 3.我有一个想法,我想尝试,但我需要一些git帮助。

我想要做的是从一个全新的rails 3应用程序开始。一个想法是进入我当前的rails项目目录并删除所有内容。然后执行提交,使树空。然后创建一个新的rails 3项目。这样我开始新鲜,所以一切都将是最新的。

然后当我将旧控制器等添加回项目时,我想" unrm"他们。 Git知道文件的历史,我想保留这段历史。

另一个替代方案是启动一个全新的rails 3应用程序,然后以某种方式将文件从旧的git存储库传输到新的git存储库,但我想保留文件的历史记录。

这是一个半生不熟的想法,但似乎一个更可行的方法来移动这个特定项目基本上是从新项目开始,然后将旧项目中的东西转移到新项目中。但是,当我将事物从旧到新移动时,我想保留每个特定文件的历史记录。

有人可以提出一种方法来做我刚刚概述过的事情吗?

1 个答案:

答案 0 :(得分:0)

首先:看看这个,自动找到一些需要升级的东西:https://github.com/rails/rails_upgrade

要回答您的问题:您可以升级rails gem,然后运行rails new .以在rails 2应用程序顶部生成新的rails 3应用程序。它会破坏您的一些重要文件,但您可以使用git diff找出其中的内容并将重要内容复制到新文件中。最后,您可能需要手动删除一些内容(例如脚本/文件夹中除rails之外的所有文件)。在现有应用程序之上“生成”一个新的rails 3应用程序似乎是推荐的做法,当我升级一个相当大的旧应用程序时,它对我很有用。