alo*_*ser 201 git git-push git-remote
我想更改Git默认远程分支目的地,所以我可以
git push
Run Code Online (Sandbox Code Playgroud)
代替:
git push upstream
Run Code Online (Sandbox Code Playgroud)
目前这被设置为原始远程,我想将其设置为不同的远程.
我试图删除原始(克隆自)遥控器
git remote rm origin
Run Code Online (Sandbox Code Playgroud)
哪个确实删除了原来的遥控器.但并没有解决git push
问题.我还是得到:
致命:没有配置推送目的地.
从命令行指定URL 或使用...配置远程存储库
我也试过玩:
git remote set-url --push myfork origin
Run Code Online (Sandbox Code Playgroud)
和其他选项,但似乎没有工作(也许是因为我太快删除了原点遥控器?)
在这里答案后,我试图改变:
git config push.default upstream (or matching)
Run Code Online (Sandbox Code Playgroud)
但都没有奏效.
161*_*903 186
您可以使用git push -u <remote_name> <local_branch_name>
设置默认上游.有关更多详细信息,请参阅git push的文档.
小智 90
要更改哪个上游远程"连接"到您的分支,请使用git branch
带有上游配置标志的命令.
首先确保远程存在:
git remote -vv
为当前(签出)分支设置首选远程:
git branch --set-upstream-to <remote-name>
使用正确的上游远程设置验证分支:
git branch -vv
pin*_*nei 37
使用Git 2.3.2 ...
git branch --set-upstream-to myfork/master
Run Code Online (Sandbox Code Playgroud)
现在status
,push
并pull
指向myfork
远程
Myk*_*yuk 36
您可以使用此命令轻松地一次性更改分支的默认远程
git push -u <remote_name> --all
Run Code Online (Sandbox Code Playgroud)
sma*_*det 13
只是一个澄清(在ubuntu 12.04上使用git版本1.7.9.5):
Git将添加/删除遥控器.这些是附加服务器的git的远程实例.
git remote add myremote git://remoteurl
Run Code Online (Sandbox Code Playgroud)
然后你可以像这样获取所说的git存储库:
git fetch myremote
Run Code Online (Sandbox Code Playgroud)
这似乎创建了一个名为'myremote'的分支,但是分支的远程不会自动设置.为此,您必须执行以下操作:
首先,确认您有这个问题,即
git config -l | grep myremote
Run Code Online (Sandbox Code Playgroud)
你应该看到类似的东西:
remote.myremote.url=git://remoteurl
remote.myremote.fetch=+refs/heads/*:refs/remotes/myremote/*
branch.myremote.remote=.
branch.myremote.merge=refs/heads/master
Run Code Online (Sandbox Code Playgroud)
如果你看到了branch.myremote.remote=.
,那么你应该继续:
git config branch.myremote.remote myremote
git checkout myremote
git pull
Run Code Online (Sandbox Code Playgroud)
您现在应该与远程存储库保持同步,并且您的pull/push应该绑定到相应的远程数据库.您可以按照这种方式为每个分支切换遥控器.[注] [1]
根据官方Git配置文档,您可以设置默认推送分支(只在该页面上搜索remote.pushdefault),但请记住,这不会影响已存在的存储库/分支,因此这将起作用但仅对于新的存储库/分支机构.您应该记住,--global
将设置用户特定的存储库默认值(〜/ .gitconfig),--system
将设置系统范围的存储库默认值(/ etc/gitconfig),并且没有标志将为当前存储库(./.gitconfig)设置配置选项.
另外需要注意的是,push.default配置选项用于配置ref-spec行为,而不是 远程行为.
[1]:git branch --set-upstream myotherremote
通常会在这里工作,但是git会抱怨它不会将分支设置为自己的远程(如果git branch --set-upstream myremote
使用的话).但我相信这是不正确的行为.
Șer*_*iță 13
如果您git push origin -u localBranchName:remoteBranchName
按顺序执行了git push
命令,则将收到错误消息,说明该错误不存在起源,然后执行以下步骤:
git remote -v
检查是否有我不需要的遥控器。用删除它们git remote remove 'name'
git config --edit
查找旧的/不存在的遥控器的可能迹象。寻找pushdefault
:
[remote]
pushdefault = oldremote
Run Code Online (Sandbox Code Playgroud)
更新oldremote
值并保存。
git push
应该现在工作。
就我而言,我通过以下方式修复: * run git config --edit
* 在 git 配置文件中:
[branch "master"]
remote = origin # <--- change the default origin here
Run Code Online (Sandbox Code Playgroud)
我刚刚找到的另一种解决此问题的技术(即使我先删除了origin,这似乎是一个错误)也是直接操作git config:
git config remote.origin.url url-to-my-other-remote
Run Code Online (Sandbox Code Playgroud)
非常简单,将这里的一些重要评论与我自己对此的研究拼凑在一起。
首先,检查您要绑定到远程分支的本地分支:
git checkout mybranch
Run Code Online (Sandbox Code Playgroud)
下一个:
git branch -u origin/mybranch
Run Code Online (Sandbox Code Playgroud)
在哪里:
git branch -u {remote name}/{branch name}
Run Code Online (Sandbox Code Playgroud)
您应该收到一条消息:
"Branch mybranch set up to track remote branch mybranch from origin."
Run Code Online (Sandbox Code Playgroud)
小智 5
看一下.git/config
您的仓库内部可能会有所帮助,它将列出所有遥控器以及每个分支的默认遥控器
例如。
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = git@gitea.xxx.be:fii/web2016.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
[branch "bugfix/#8302"]
remote = origin
merge = "refs/heads/bugfix/#8302"
[branch "feature/#8331"]
remote = origin
merge = "refs/heads/feature/#8331"
[remote "scm"]
url = https://scm.xxx.be/git/web2016bs.git
fetch = +refs/heads/*:refs/remotes/scm/*
Run Code Online (Sandbox Code Playgroud)
您可以在此文件中进行手动更改以删除不需要的遥控器,或为您拥有的其他分支更新默认遥控器
归档时间: |
|
查看次数: |
107102 次 |
最近记录: |