我有一个指向远程的存储库,现在我创建了一个新的远程,例如使用git remote set-url origin myNewRemote. 然后我做了一个git push但由于推送只推送本地分支,我仍然需要将远程分支推送到新的远程分支。我知道这不是练习,但我现在想要做的就是告诉新的远程“嘿,这是你应该知道的远程分支”然后我将通过正常的 Git 工作流程,在那里我创建本地分支/跟踪并将它们推送到远程,但现在我正处于过渡阶段,以恢复使用新遥控器之前的状态。
我记得曾经做过这样的事情:
git push origin refs/remotes/*:refs/heads/* 但它们创建错误,所以我将原点附加到分支名称,所以我很确定上面的命令(X:Y 部分)不完全正确,有人可以帮助正确的,所以我不必创建所有首先在本地分支?
唐尼布
你想起了什么:
Run Code Online (Sandbox Code Playgroud)git push origin refs/remotes/*:refs/heads/*
非常接近。由于旧remote名称和新名称都是origin,远程跟踪分支(下面的名称refs/remotes/)专门位于refs/remotes/origin/子名称空间中,您也希望丢弃额外的名称origin/。因此你想要的是:
git push origin "refs/remotes/origin/*:refs/heads/*"
Run Code Online (Sandbox Code Playgroud)
(我在这里加引号作为对炮弹,炮弹喜欢蒙克的保护装置*的早餐字符。:-)更严重的是,外壳规则像通配符的字符*和?和[a-z]和这样的,有点复杂,越如果它们不匹配任何文件,明智的 shell 喜欢sh并bash保持不变地传递它们,但是当您实际上有一个名为例如的文件时,这会导致偶尔出现问题。)refs/remotes/origin/foo:refs/heads/bar
| 归档时间: |
|
| 查看次数: |
1292 次 |
| 最近记录: |