2011-11-25 133 views
29

我是git和heroku的新手。替换远程git仓库(Heroku)

我在heroku上创建了一个应用程序,将一些文件推送到回购站。

现在我想用另一个文件夹中的新内容完全替换此应用程序的回购(并在该文件夹中有一个.git回购)。什么是正确的方法来做到这一点?

回答

46

如果你想完全取代您已经通过新的第二回购的历史推提交的历史,你应该需要做的是:

git remote show heroku in the first repo 
cd /path/to/seconf/git/repo 
git remote add heroku <heroku_repo_address_from_previous_command> 
# for instance: git remote add heroku [email protected]:appname.git 
git push --force heroku master 

将取代的master分支由您的第二个回购的master分支的远程heroku回购。但是,这将放弃(或至少保留在远程回购一段时间reflogs)前回购的master分支的历史。

这假定您可以重复使用已创建的您的heroku凭据,跟在Heroku quick start pageHeroku Deploying with git page之后。

+0

谢谢。是--force选项可以让100%的受助者新的主分支不会与服务器上的旧分支合并,而只是替换它?从文档它不明显(“此标志[-f, - force]禁用检查。这可能会导致远程存储库丢失提交;小心使用它。”) – WHITECOLOR

+0

@WHITECOLOR:是的,不会有任何合并。 – VonC

+17

只需要使用“部队” – doublejosh