部署重写的Github/Heroku应用程序

neo*_*eon 4 git ruby-on-rails github heroku ruby-on-rails-3

我有一个应用程序,是活在Heroku/Github上,但最近完全从头开始重建它 - 我想保留旧的存储库名称,什么是新的代码替换现场代码的最佳方式是什么?

Von*_*onC 5

迈克尔答案略有不同:

git branch -M master old_master
git rm -rf .
git checkout --orphan master
git remote add version2 "/path/to/new_version/.git"
git pull version2 master
Run Code Online (Sandbox Code Playgroud)

(像往常一样,先备份一切)

如果您使用的是git1.7.2 +,则可以使用git checkout --orphan:

类似于-b,--orphan创建一个新的分支,但它启动时没有任何提交.
运行" git checkout --orphan newbranch"之后,您将进入新的分支" newbranch",并且您从此状态创建的第一个提交将启动一个没有任何祖先的新历史记录.

当创建一个树与其原始分支中的树没有相似性的分支时,通过在不跟踪和删除原始分支中的所有工作树文件的情况下,通过运行' git rm -rf .'后立即开始处理新分支可能更容易跑" checkout --orphan".

您避免在同一分支上有两个不同的历史记录,在一个特定提交时突然发生更改.
相反,你会在其中保留几个具有不同历史的根分支.
但这意味着重写提交历史,master考虑到您只需要以前的历史记录以供参考和存档,这并不是那么糟糕.