gpt4 book ai didi

git - 将 refs/remotes 推到新的来源,如何?

转载 作者:太空狗 更新时间:2023-10-29 14:36:54 25 4
gpt4 key购买 nike

我有一个指向远程的存储库,现在我创建了一个新的远程,例如使用 git remote set-url origin myNewRemote 更改了原始 url。然后我做了一个 git push 但是因为 push 只推送本地分支我仍然需要将远程分支推送到新的远程。我知道这不是实践,但我现在想做的就是告诉新的远程“嘿,这是你应该知道的远程分支”然后我将通过正常的 Git 工作流程,在那里我创建本地分支/跟踪并将它们推送到 Remote ,但现在我正处于过渡状态,以恢复到移动到新 Remote 之前的状态。

我记得曾经做过这样的事情:

git push origin refs/remotes/*:refs/heads/* 但它们创建错误所以我将 origin 附加到分支名称所以我很确定上面的命令(X: Y 部分)不完全正确,有人可以提供正确的帮助,这样我就不必先在本地创建所有分支吗?

唐尼布

最佳答案

你记得:

git push origin refs/remotes/*:refs/heads/*

非常接近。由于新旧 remote 名字是 origin , 远程跟踪分支——refs/remotes/ 下的名称—具体在refs/remotes/origin/子 namespace ,并且您想丢弃多余的 origin/以及。因此你想要的是:

git push origin "refs/remotes/origin/*:refs/heads/*"

(我在此处添加引号作为对 shell 的保护装置,shell 喜欢咀嚼 * 字符作为早餐。:-) 更严重的是,shell 规则通配符——像 * 这样的字符和 ?[a-z]等等——有点复杂,更明智的 shell 像 shbash 如果它们不匹配任何文件,则以不变的方式传递它们,但是当您实际上有一个名为 refs/remotes/origin/foo:refs/heads/bar 的文件时,这会偶尔导致问题例如。)

关于git - 将 refs/remotes 推到新的来源,如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37564353/

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