从github拉取了一个开源的项目,我需要稍微改动了一下,放到了自己的gitlab仓库中,但是我同时也需要实时去查看github这个项目新增加了哪些功能,我把好用的功能在合并到自己的gitlab中
需求是跟踪 GitHub 上游仓库的更新,并挑选有用的功能合并到 GitLab 仓库。可以按照以下方法来实现:
使用 Git 远程仓库
Git 允许你添加多个远程仓库,你可以在本地仓库同时跟踪 GitHub 和 GitLab,然后从 GitHub 拉取更新,选择性地合并到 GitLab 仓库。
1. 添加 GitHub 作为远程仓库
假设你的 GitHub 仓库地址是 https://github.com/user/repo.git
,你的 GitLab 仓库地址是 https://gitlab.com/user/repo.git
,你可以在本地仓库执行:
git remote add github https://github.com/user/repo.git
你可以用
git remote -v
检查远程仓库列表。
2. 获取 GitHub 最新代码
每次想查看 GitHub 上的新功能时,运行:
git fetch github
这会把 GitHub 的最新代码拉取到本地,但不会影响当前分支。
3. 查看 GitHub 的最新提交
你可以用 git log
对比本地 GitLab 版本和 GitHub 版本:
git log --oneline --graph --decorate --all
或者查看 GitHub 最新提交:
git log github/main --oneline
4. 挑选有用的功能
有几种方式合并 GitHub 代码:
单独挑选提交(Cherry-pick):
git checkout main git cherry-pick <commit-id>
这样你可以只合并有用的提交,而不影响其他代码。
合并特定分支:
如果你想要合并 GitHub 上的main
分支,可以执行:git merge github/main
但这可能会引入所有变更。
手动合并变更:
如果你不想直接合并,可以先把 GitHub 代码拉取到本地的github-main
分支:git checkout -b github-main github/main
然后手动对比:
git diff main..github-main
选择需要的更改后再合并。
5. 推送到 GitLab
合并完 GitHub 代码后,推送到 GitLab:
git push origin main