gpt4 book ai didi

git - 更新 Github 上 fork 存储库的多个分支

转载 作者:太空狗 更新时间:2023-10-29 13:57:24 26 4
gpt4 key购买 nike

我有一个 fork 的 github 存储库(称它为 repo-O 并称我的 fork repo-F),其中包含大约 8 个分支。其他贡献者和 repo-O 的多个分支已经对 repo-O 进行了几次(100 次)提交。我现在想将这些更改 pull 入我的 fork repo (repo-F)。我不能使用 fork 队列,因为有大约 3000 个提交要挑选,我更愿意从命令行执行此操作。

所以..我克隆了我的 repo,将 repo-O 添加为远程(上游)并获取更改,然后 merge origin/upstream ... 然后推回 repo-F。

这似乎已将更改应用到 master 分支,但没有应用到任何其他分支....

我怎样才能重复上述过程,以便更新“所有”分支?

谢谢

最佳答案

你想要完成的是“对于 repo-o 上的每个远程分支,如果我没有它,则创建指向 repo-o 分支的相同分支,或者从同一分支上的任何内容中提取本地分支的信息在 repo-o 上,最后将所有这些分支推送到我的 repo-f”。

假设你的 Remote 真的被命名为 repo-orepo-f,我会在 bash 中玩类似的东西:

for repo_o_branch in \
$(git branch -a|grep repo-o|perl -nle's,^\s*repo\-o/,,;print $_';
do
( \
( git checkout $repo_o_branch \
&& git pull --rebase repo-o $repo_o_branch) \
|| ( git checkout -b $repo_o_branch repo-o/$repo_o_branch ) \
) && git push repo-f $repo_o_branch;
done

对于所有“repo o 分支”(由 git branch -a 显示为“repo-o/branchname”,不包含其中的“空格和‘repo-o/’”部分),

  • 尝试检查分支在其中执行git pull --rebase repo-o branchname
  • 或者,如果 git checkout 失败(因为您没有该分支): checkout 一个以 repo-o 的分支名称命名的新分支,并将其指向 repo-o 的分支名称。<
  • 如果以上两项中的任何一项成功,将新创建或更新的分支名称推送到您的 repo-f。

调味;最好尝试在 repo-f 的新创建的 git 克隆上添加远程 repo-o,以防出现问题;)

关于git - 更新 Github 上 fork 存储库的多个分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4333553/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com