作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我在 git 存储库中有一个 Web 应用程序。由于历史原因,Web 应用程序不在存储库的根目录中,它位于名为 website
的文件夹中。除此之外还有一些其他的文件夹,所以我得到了以下结构:
myApp
+- .git
+- otherFolder1
+- otherFolder2
+- otherFolder...
+- otherFolderN
+- website
该网站在 Heroku 上运行。由于 Heroku 要求您的 Web 应用程序位于 git 存储库的根目录,直到现在我使用的构建过程将 website
文件夹复制到一个完全不同的(外部)文件夹,它有自己的 git 存储库。然后我能够从那里推送到 Heroku,一切都很好。
现在,因为 git 包含了 subtree
命令,这不再是必需的,因为我可以直接从我的初始文件夹推送,而只是 website
子文件夹,使用:
git subtree push --prefix=website heroku master
基本上,这是完美的。我只有一个问题:由于之前对 Heroku 的提交来自完全不同的 git 存储库,两者的历史记录彼此不匹配 - 因此 Heroku 检测到非快进推送,并拒绝 subtree
推送。
那么我该如何处理呢?
git subtree push
没有 --force
选项(或任何类似的选项)。我很想采用想法 2,但我不知道如何实现它。
我的第一个方法是运行 git push heroku :master
,但 Heroku 检测到并拒绝了它。
当然,我可以销毁该应用程序并重新创建它,但随后所有域分配和附加组件也会消失,我想避免这种情况。
还有其他想法吗?
最佳答案
可以嵌套git命令来执行强制推送。
对于您的情况,命令将是:
git push heroku `git subtree split --prefix website master`:master --force
关于git - 如何将 Heroku git 存储库重置为初始状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12644855/
我是一名优秀的程序员,十分优秀!