第三方回购有一个分支,我想将其添加为我的回购的子目录。我希望能够对第三方代码进行更改,将这些更改保留在我的回购中,并且仍然能够获得对第三方回购的更新。本质上,我试图创建一个覆盖。Git子树合并,但保持本地更改?
按照指导here进行子树合并(它完全描述了我正在尝试完成的工作),我创建了一个指向第三方回购的远程,创建了一个引用我想要的远程分支的本地分支,在该分支上完成了拉取操作,并使用读取树将本地分支的内容复制到master中的子目录中。
我已经犯下并在此子目录推变化(新文件和编辑现有的文件)掌握。上游分支中的各种文件也进行了更改。我已经能够将这些改变下拉到我的分支。但是,当我尝试合并如下时,
git merge --squash -s subtree --no-commit <my_branch>
我的本地更改被上游的更改覆盖。我创建的新文件将被删除,并且我对现有文件所做的更改会丢失。
我做错了什么或者是预期的行为?我怎样才能保持我的变化,并仍然从上游的变化合并?
我有完全相同的问题,您是否找到解决方案? – gregseth
@gregseth对不起,但没有。幸运的是,我最终不需要解决它。我应该再次尝试一下,并在这里给出更好的答案。如果您找到适合您的解决方案,请让我知道! – Naenyn