第 3 方存储库中有一个分支,我想将其添加为我的存储库的子目录。我希望能够更改该 3rd 方代码,在我的 repo 中维护这些更改,并且仍然能够获得对 3rd 方 repo 所做的更新。本质上,我正在尝试创建一个叠加层。
按照此处的子树合并指南(它准确描述了我要完成的工作),我创建了一个指向该第 3 方存储库的远程,创建了一个引用我想要的远程分支的本地分支,完成了拉动该分支,并使用 read-tree 将本地分支的内容复制到 master 的子目录中。
我已将此子目录中的更改(新文件和对现有文件的编辑)提交并推送到 master。上游分支中的各种文件也进行了更改。我已经能够将更改下拉到我的分支。但是,当我尝试如下合并时,
git merge --squash -s subtree --no-commit <my_branch>
我的本地更改被上游的更改覆盖。我创建的新文件被删除,我对现有文件所做的更改丢失。
我做错了什么还是预期的行为?如何保留我的更改并仍然合并来自上游的更改?