我的 main_repo 的文件夹结构如下
应用程序根目录
这是主要的应用。我还有另一个存储库,其中包含我的主应用程序的扩展。问题是扩展目录布局与主项目根目录重叠,例如
扩展根目录
所以我不能使用子模块工具。我需要合并这两个存储库以进行进一步的开发。我需要能够从extension_repo合并到main_repo并返回,因此如果我对合并到main_repo的扩展进行了更改,我只能将这些更改(没有应用程序本身)合并到extension_repo。我不知道这是否可能。看来读取树合并可以做到我想要的,但我不能以这种方式使用它
git read-tree --prefix=/ -u extension_remote_branch
Run Code Online (Sandbox Code Playgroud)
因为我收到这个错误
error: Entry '.gitignore' overlaps with '.gitignore'. Cannot bind.
Run Code Online (Sandbox Code Playgroud)
我想我重叠的所有目录都会出现此错误。除了 .gitignore 之外,我实际上没有重叠的文件。
到目前为止,我还没有找到通过 git 使用单个命令来完成此操作的方法;所以我使用了一个相当简单的解决方法。基本方法是read-tree进入第二个空目录。然后将第二个目录移到第一个目录之上。
基本流程是:
mkdir upstream-tree
git read-tree --prefix=upstream-tree/ -u myremote/branch
git commit -m "Pulled in remote tree"
cp -rf upstream-tree/* local-tree/
git rm -r upstream-tree
git add local-tree
git commit -m "Merged upstream-tree into local-tree"
Run Code Online (Sandbox Code Playgroud)
小智 1
让我猜猜。您是 magento 开发人员吗?
目前我找到了一个解决方案:
git merge -s ours --no-commit ...现在,所有更改都将保存到扩展的存储库中。没有框架的文件。不幸的是,这种方法仅适用于一个扩展。但我看到了一种有趣的方法,.git为每个扩展名重命名文件夹。我还没有尝试过。
| 归档时间: |
|
| 查看次数: |
5485 次 |
| 最近记录: |