我Fork了一个项目A,然后根据A项目建了一个新项目B(但与Fork的项目没有关联),我在B项目基础上实现了自己的功能,这时候如果A的源项目更新了(A与源项目同步),我也想要同步更新到B项目,但又要保持我自己实现的功能不受影响(不被覆盖),这样的流程我要如何管理呢?
你这不是最典型的git使用场景么。 其实就好比,你跟别人一起贡献一个代码。你自己写自己的功能点,还要考虑别人已经提交的,你还要同步到你的代码里来。 在你的项目里面git remote add upstream 增加一个上游的url(指向上游项目)。每次父项目有更新,你直接fetch最新。然后创建 up_master 分支,保持与upstream/master 一致。 自己项目开发的东西 放到自己的dev分支。没有同步或者需要合并的时候,直接push dev到自己的origin 库里就可以。 上游项目有变更,按上面操作一下,git pull 拉取到最新的分支代码 up_master,切换到自己的分支库上,执行 git rebase up_master操作。 这里完成代码合并,解决好冲突后,你再push到自己的origin项目库里。 手敲不易,望采纳!!!
可以直接拉取被fork的A项目的你需要的分支合并到B的当前分支里,如果真的不受影响(没有删除和更改,只有新增),你可以合并直接完成,如果会产生影响,git会让你解决冲突。
使用另外一个工具BC2,可以比对两个相近项目,进行文件,文件夹或者某行代码的双向复制