【问题标题】:How to merge my code with code coming from a different repository in git如何将我的代码与来自 git 中不同存储库的代码合并
【发布时间】:2012-05-25 15:36:47
【问题描述】:

一个月前,我开始在 github 上的一个私有存储库上开发一项新功能。我克隆了存储库并将其分支。从那以后我一直在分公司工作。

与此同时,代码已移至 github 上的不同存储库。现在我需要将我所做的与新开发中的新开发合并。

我的想法:

1 - 签出新的存储库。

2 - 查找我的存储库中的最后一个常见提交和新提交。这应该是 master 分支上的最后一次提交。

3 - 在主分支和我的工作分支之间创建一个补丁。

4 - 将补丁应用到新存储库。

这是正确的吗?执行 3 和 4 的 git 命令应该是什么?

【问题讨论】:

    标签: git merge git-branch


    【解决方案1】:

    git-rebase 应该做你想做的事,即将你的更改重播到新的 repo:

    git remote add new-repo /path/to/new-repo
    git fetch new-repo
    git checkout hacking-branch
    git rebase hacking-branch new-repo/master
    

    【讨论】:

    • 这正是我所需要的,当它们存在时我需要纠正冲突,但它可以完成工作,谢谢
    【解决方案2】:

    如果新存储库确实是旧存储库的分支/克隆,那么您应该能够简单地将 .git/config 中的 URL 替换为新 URL,然后 git fetch 以从新项目中提取所有内容。完成后,您可以酌情使用git rebasegit merge

    如果您想要跟踪两个项目而不是只跟踪一个项目(旧项目中是否有正在进行的开发,您可能仍想偶尔加入?),那么您可以将新存储库添加为另一个远程-git remote add newproj <URL>。您甚至可以将旧的名称重命名为 origin 以外的名称,这样您就可以为新的存储库使用 origin 名称。

    这将避免需要走补丁路线,因为您实际上只是将本地存储库指向新位置,并且可以直接访问所有新提交以及旧提交。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-17
      • 1970-01-01
      • 2014-05-30
      • 1970-01-01
      相关资源
      最近更新 更多