Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 如何将参考/遥控器推送到新原点?_Git - Fatal编程技术网

Git 如何将参考/遥控器推送到新原点?

Git 如何将参考/遥控器推送到新原点?,git,Git,我有一个指向远程设备的存储库,现在我制作了一个新的远程设备,例如使用git remote set url origin myNewRemote更改了源url。然后我做了一个git push,但是由于push只推本地分支,所以我仍然需要将远程分支推送到新的远程分支。我知道这不是练习,但我现在想做的就是告诉新的遥控器“嘿,这是你应该知道的远程分支”,然后我将通过正常的Git工作流创建本地分支/跟踪,并将它们推到远程,但现在我正处于一个过渡阶段,要回到移动到新遥控器之前的状态 我记得曾经做过这样的事情

我有一个指向远程设备的存储库,现在我制作了一个新的远程设备,例如使用
git remote set url origin myNewRemote
更改了源url。然后我做了一个git push,但是由于push只推本地分支,所以我仍然需要将远程分支推送到新的远程分支。我知道这不是练习,但我现在想做的就是告诉新的遥控器“嘿,这是你应该知道的远程分支”,然后我将通过正常的Git工作流创建本地分支/跟踪,并将它们推到远程,但现在我正处于一个过渡阶段,要回到移动到新遥控器之前的状态

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

git push origin refs/remotes/*:refs/heads/*
但它们创建错误,因此我将origin附加到分支名称中,因此我非常确定上面的命令(X:Y部分)不完全正确,是否有人能帮我选择正确的命令,这样我就不必首先在本地创建所有分支

donnib

你记得什么:

非常接近。由于旧的和新的
remote
名称都是
origin
,因此在
refs/remotes/
下的那些名称的远程跟踪分支特别位于
refs/remotes/origin/
子名称空间中,并且您希望丢弃额外的
origin/
。因此,您需要的是:

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

(我在这里加上引号是为了保护贝壳,因为贝壳喜欢在早餐时咀嚼
*
字符。:-)更严重的是,贝壳规则对于像
*
[a-z]
这样的球形字符有点复杂,更合理的shell,如
sh
bash
如果它们不匹配任何文件,则会将它们原封不动地传递,但当您实际拥有一个名为
refs/remotes/origin/foo:refs/heads/bar(例如)的文件时,这会导致偶尔出现问题。)

尝试直接从旧远程设备克隆新远程设备。”cd OLD-REMOTE-DIR'和git push--mirror NEW-REMOTE-URL'谢谢,这正是我想要的。
git push origin "refs/remotes/origin/*:refs/heads/*"