Changing the Git remote 'push to' default
我想更改git默认的远程分支目的地,这样我就可以
1 | git push |
而不是:
1 | git push upstream |
号
目前这被设置为源站远程,我想将它设置为另一个远程。
我试图删除原始的(从远程克隆的)
1 | git remote rm origin |
它确实移除了原来的遥控器。但不能解决
fatal: No configured push destination. Either specify the URL from the
command-line or configure a remote repository using...
号
我还试着玩:
1 | git remote set-url --push myfork origin |
。
还有其他选项,但似乎都不起作用(可能是因为我太快删除了源站遥控器?)
按照这里的答案,我试图改变:
1 | git config push.default upstream (or matching) |
但两者都不起作用。
您可以使用
要更改将哪个上游远程设备"连接"到您的分支,请使用带有上游配置标志的
首先确保远程存在:
埃多克斯1〔2〕
为当前(已签出)分支设置首选远程:
埃多克斯1〔3〕
验证是否使用正确的上游远程设置了分支:
江户十一〔四〕号
使用此命令,您可以轻松地同时更改分支的默认远程设置
1 | git push -u <remote_name> --all |
使用Git 2.3.2…
1 | git branch --set-upstream-to myfork/master |
。
现在,
只是一个说明(使用Ubuntu 12.04上的Git版本1.7.9.5):
Git将添加/删除遥控器。这些是连接了服务器的git的远程实例。
1 | git remote add myremote git://remoteurl |
号
然后,您可以这样获取所述Git存储库:
1 | git fetch myremote |
这似乎创建了一个名为"myremote"的分支,但是该分支的远程不是自动设置的。要执行此操作,必须执行以下操作:
首先,确认您有这个问题,即
1 | git config -l | grep myremote |
。
您应该看到如下内容:
1 2 3 4 | remote.myremote.url=git://remoteurl remote.myremote.fetch=+refs/heads/*:refs/remotes/myremote/* branch.myremote.remote=. branch.myremote.merge=refs/heads/master |
如果您看到
1 2 3 | git config branch.myremote.remote myremote git checkout myremote git pull |
。
现在您应该了解远程存储库的最新信息,并且您的拉/推应该绑定到适当的远程。每个分支都可以用这种方式切换遥控器。[注][1]
根据正式的git-config文档,您可以设置一个默认的push分支(只在该页面上搜索remote.push default),但是请记住,这不会影响已经存在的存储库/分支,因此这只适用于新的存储库/分支。您应该记住,
还应该注意,push.default配置选项用于配置参考规范行为,而不是远程行为。
【1】:
如果您执行了
检查是否有我不在乎的遥控器。用
寻找旧的/不存在的遥控器的可能迹象。查找
1 2 | [remote] pushdefault = oldremote |
号
更新
我刚刚发现的另一个解决这个问题的方法(即使我先删除了原点,但似乎是错误的)是直接操作git-config:
1 | git config remote.origin.url url-to-my-other-remote |
非常简单,把这里的一些伟大的评论和我自己的研究拼凑在一起。
首先,检查要连接到远程分支的本地分支:
1 | git checkout mybranch |
。
下一步:
1 | git branch -u origin/mybranch |
哪里:
1 | git branch -u {remote name}/{branch name} |
。
您应该收到一条消息:
1 | "Branch mybranch set up to track remote branch mybranch from origin." |
号