1

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

与此同时,代码被移到了 github 上的不同存储库。现在我需要将我所做的与新的发展中的新发展结合起来。

我的点子:

1 - 签出新的存储库。

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

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

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

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

4

2 回答 2

1

git-rebase应该做你想做的事,即将你的改变重播到新的回购:

git remote add new-repo /path/to/new-repo
git fetch new-repo
git checkout hacking-branch
git rebase hacking-branch new-repo/master
于 2012-05-25T15:48:30.193 回答
0

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

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

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

于 2012-05-25T16:11:33.600 回答