git双数据源

半兽人 发表于: 2025-03-18   最后更新时间: 2025-03-18 17:24:17  
{{totalSubscript}} 订阅, 40 游览

从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
git
更新于 2025-03-18
在线,2小时前登录

查看git更多相关的文章或提一个关于git的问题,也可以与我们一起分享文章