将一个Git分支移动到另一个Git仓库中

這個問題的背景

因为本来想要在同一个报告中管理的项目竟然分成了两个报告,所以我想将其整合到一个报告中,于是进行了调查。

这次有 repo_src 和 repo_dst 两个仓库,需要将 repo_src 的 target_branch 分支直接移动到 repo_dst 的 target_branch 分支上。

以下是中文的翻译:

步骤

1. 设置变量

为了在以后能够使用相同的命令,可以事先进行设置,就像这样。

REPO_SRC=https://github.com/nakamasato/repo_src
REPO_DST=https://github.com/nakamasato/repo_dst
REPO_SRC_PATH=~/repos/repo_src
REPO_DST_PATH=~/repos/repo_dst
TARGET_BRANCH=target_branch

将repo_src和repo_dst在本地克隆。

如果没有将Git的Remote推送到,就不需要克隆。只需要简单地设置REPO_SRC_PATH和REPO_DST_PATH就可以了。

git clone $REPO_SRC $REPO_SRC_PATH
git clone $REPO_SRC_PATH $REPO_DST_PATH

在repo_dst的一侧设置远程repo_src_remote。

cd $REPO_DST_PATH
git remote add repo_src_remote $REPO_SRC_PATH

在repo_dst端创建TARGET_BRANCH。

git branch -b $TARGET_BRANCH

在repo_dst端将TARGET_BRANCH重置为repo_src的TARGET_BRANCH。

git reset repo_src_remote/$TARGET_BRANCH --hard

这样,就可以将repo_src的$TARGET_BRANCH上的所有提交移动到repo_dst的$TARGET_BRANCH上。当然,即使repo_dst和repo_src上的目标分支不同也可以。

6. 删除无需的遥控器,从repo_dst中删除。

git remote rm repo_src_remote

请参考。

    Move git branch from one repository to another with preserving history
广告
将在 10 秒后关闭
bannerAds