修改别人的源码并提交到自己的仓库

最近在修改 https://gitee.com/beecue/fastbee 项目的时候有一个需求.

就是将修改后的代码提交到自己的仓库, 并且当 fastbee 项目更新的时候, 将更新的内容合并到自己的项目中.


将别人的项目拉取下来后, 修改远程仓库的名字 git remote rename origin upstream, 也可以将 upstream 改为别的, 看自己的习惯.

然后添加一个我们自己的远程仓库 git remote add <远程仓库名称> <仓库URL>.

最后创建一个新的分支 git switch -c remote/<远程仓库名称>/<远程分支名称>, 我们在这个分支上修改代码.

现在可以使用 git push -u <远程仓库名称> remote/<远程仓库名称>/<远程分支名称>:<远程分支名称> 提交到自己的仓库中.

后续拉取和推送, 可以切换到这个新的分支然后执行 git pullgit push.

如果想只使用 git pull, 前提是本地分支名要和远程分支名一样.

当别人的项目更新后, 先切换到 git switch main 分支(因为最开始拉取的就是这个分支), 然后再拉取更新 git pull.

然后切换到开发分支(就是上面说的'新的分支'), 并执行 git merge main 将 main 分支合并到开发分支.

最后就可以提交这些代码到自己的仓库中了.

合并之前必须要先提交修改的代码, 保证仓库"干净".


有另一种情况, 是先拉取了自己的仓库, 然后再合并别人的代码.

在自己的仓库中, 创建一个新的分支 git switch -c merge/<远程仓库名称>/<远程仓库分支名>.

然后再添加别人项目的远程仓库git remote add <远程仓库名称>_url <仓库URL>.

通过 git fetch <远程仓库名称>_url 获取远程仓库的最新数据后, 通过 git merge <远程仓库名称>_url/<远程仓库分支名> 合并到当前分支.

posted @ 2024-10-17 11:29  杂役24  阅读(135)  评论(0)    收藏  举报