我可以使用只读权限访问承包商的Git回购。我从他的服务器上提取他的分支(smile/dev -> dev),然后将它们推回我的GitLab服务器上。然后,我在自定义分支(sectronic -> origin/sectronic)上进行修改,然后如果发生一些更改,可以将它们的smile/dev重新基地或合并到自己的sectronic分支中。
最近,我给我的sectronic分支做了一个补丁,我从它导出了一个补丁,并发送给了我的承包商。他在他的smile/dev分支上应用了修补程序,所以现在我的树中有两个不同的提交,但都做了相同的更改(两个顶部的)。

我怎样才能摆脱这种局面?我不能删除我的分支,因为我有过去的修改,我想保留,我不能真的很难恢复到我自己的提交,因为我可以做其他的提交之后。我目前在Git方面还不够熟练,不知道如何正确地清理这个问题。
我知道工作流不是最优的,让这个工作正常的方法是通过使用拉/合并请求,但遗憾的是,在我的情况下,这是不可能的。
发布于 2020-12-14 14:01:50
如果您的分支sectronic没有与许多人共享(例如:如果您是唯一使用它的人,或者您和您可以轻松联系的一小群开发人员),那么您可以重写您的分支的历史记录。
如果是这样,您可以使用重基并强制推送您的分支:
# from your 'sectronic' branch :
git checkout sectronic
# rebase on top of smile/dev :
git rebase smile/dev
# and force push :
git push --force-with-lease origin sectronic如果该分支与其他开发人员共享,您将不得不告诉他们更新他们的本地工作。
如果两个F[io]x modem power on and off procedures引入的补丁100%相同,git rebase将自动识别重复提交并从重写的分支中删除它。
https://stackoverflow.com/questions/65289898
复制相似问题