将提交转移到新的远程

Transfer commits to new remote

我有以下情况:

您可以看到我正在处理 <red_project>。起初我在 <green_team> 工作,但由于重组,我现在属于 <blue_team>

三天前,IT 将代码向上移动直到提交 dad25697af4<green_team><blue_team> 存储库目录。但从那以后,对 <green_team> 存储库中的代码进行了更多提交。

如何将这些最新提交转移到 <blue_team> 存储库?

目前在我的 shell 中,我看到以下内容:

<red_project>$ git remote -v
origin  ssh://git@git.<purple>.com:<port>/<green_team>/<red_project>.git (fetch)
origin  ssh://git@git.<purple>.com:<port>/<green_team>/<red_project>.git (push)

我想我可能需要添加 ssh://git@git.<purple>.com:<port>/<blue_team>/<red_project>.git 作为新的遥控器,但不确定接下来的步骤。

我会切换到 <blue_team> 存储库,将 <green_team> 存储库添加为新的远程引用:

git remote add origin_green ssh://git@git.<purple>.com:<port>/<blue_team>/<red_project>.git

然后我会根据 How do I fetch only one branch of a remote Git repository?

从那个遥控器获取我需要的数据
git fetch origin_green <branch_name>

然后我将 cherry-pick 提交或提交范围 (How to cherry pick a range of commits and merge into another branch?) 放入 origin_green 上的匹配分支。

如果在 <blue_team> 存储库上没有完成(或正在完成)任何工作,您也可以 git reset --hard origin_green/<branch_name>.

最后,删除 origin_green 远程引用:

git remote remove origin_green