我有两个存储库Repo1和Repo2。我在Repo1中有几个新分支机构应该转移到Repo2。我如何cherry-pick
这些分支(以及其中的所有提交(并将其移动到第二个repo?
到目前为止,我已经完成了:
git remote add repo2 https://...repo1.git
git fetch other
它列出了Repo1中创建的所有分支。但我不知道如何才能精心挑选这些树枝并推出Repo2。
Ps。我不能做git remote
,因为这会引起很多冲突,因为两个存储库中的数据都有一些差异。
首先,您获取的不是git fetch other
,而是。
cd /path/to/repo2
git remote add repo1 https://...repo1.git
git fetch repo1
换句话说,您将在目标repo(repo2(的本地克隆中工作,而不是在repo1中。
其次,它应该用git branch -avv
列出所有分支
但是,由于repo1和2没有共同的历史记录,因此将由您确定repo1分支的开始(或者它将考虑分支一直提交到第一个repo1提交:在repo1中没有所述分支开始的共同分支(
如果你认为repo1分支可以应用于现有的repo2历史,你可以:
- 从
repo1/aBranchToMove
创建新的分支 rebase --onto
将repo1分支(打开(连接到现有的repo2分支
即:
cd /path/to/repo2
git switch -c newBranch repo1/branch
git rebase --onto main <first-Commit>~ newBranch
这将重新定位提交,从<first-Commit>
(您需要在repo1中查找(到newBranch(它引用了repo1分支HEAD,您想仔细挑选(到现有的repo2分支(例如,此处为"main
"(