0

所以我需要将rails 2.3.14 应用程序升级到rails 3。我们使用git,所以决定创建另一个分支'rails3'(git checkout -b rails3)。我发现升级问题最简单的解决方案是删除所有东西并生成一个新项目并复制/粘贴控制器、视图等。但是现在git status告诉我这些文件被删除并重新生成,而不是修改,尽管它们中的大多数都在原来的位置。所以变化仍然是模糊的,其他程序员不会看到文件的细微变化。

我做了什么:

/path/to/rails_project/ (master) $ git checkout -b rails3
/path/to/rails_project/ (rails3) $ rm -rf ./* # not git rm
/path/to/ $ rails new rails_project
/path/to/rails_project/ (rails3) $ cp old/project/stuff/from/another/dir

我如何“告诉” git 这些文件已被修改,而不是被删除和重新生成?我将升级后的应用程序放在一个完全不同的目录中,因此它可以很好地内爆 cosmos 并从头开始做所有事情。

4

2 回答 2

0

Git doesn't automatically delete anything. You must have been using an IDE or editor that was calling git rm ... and then git add ... and you just didn't see it.

To avoid this, use git at command line or with a tool that is more obvious. And instead of git rm and git add for something that is the same file, use git mv. Sometimes git figures out moves on its own when you rm and add, but with mv it doesn't have to guess.

于 2013-05-16T18:33:58.330 回答
0

如果您在下面所说的是正确的,看起来 git 是正确的

“我发现升级问题最简单的解决方案是删除所有东西并生成一个新项目并复制/粘贴控制器、视图等。”

如果文件是你想要的,为什么不只是: git add git commit

于 2013-05-16T18:26:20.247 回答