我在git存储库中有一个Web应用程序.由于历史原因,Web应用程序不在存储库的根目录下,因此它位于名为的文件夹中website
.除此之外还有一些其他文件夹,所以我有以下结构:
myApp
+- .git
+- otherFolder1
+- otherFolder2
+- otherFolder...
+- otherFolderN
+- website
Run Code Online (Sandbox Code Playgroud)
该网站在Heroku上运行.由于Heroku要求您的Web应用程序位于git存储库的根目录,所以直到现在我使用了一个构建过程,该过程将website
文件夹复制到具有自己的git存储库的完全不同的(外部)文件夹.然后我就能从那里推到Heroku,一切都很好.
现在,因为git包含了这个subtree
命令,所以不再需要了,因为我可以直接从我的初始文件夹中推送,但只是website
子文件夹,使用:
git subtree push --prefix=website heroku master
Run Code Online (Sandbox Code Playgroud)
基本上,这非常有效.我只有一个问题:由于之前对Heroku的提交来自一个完全不同的git存储库,两者的历史记录彼此不匹配 - 因此Heroku检测到非快进推送,并拒绝subtree
推送.
那么我该如何处理呢?
git subtree push
没有--force
选项(或类似的东西).我很想知道2,但我不知道如何实现这一目标.
我的第一个方法是运行一个git push heroku :master
,但Heroku检测到这一点并否认它.
当然,我可以破坏应用程序并重新创建它,但是所有域分配和附加组件也都消失了,我想避免这种情况.
还有其他想法吗?
小智 50
您可以嵌套git命令来执行强制推送.
对于您的情况,命令将是:
git push heroku `git subtree split --prefix website master`:master --force
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7259 次 |
最近记录: |