更改Git远程推送的默认设置

348

我想更改Git默认的远程分支目标,以便我只需要

git push

改为:

git push upstream

目前设置为远程源,我希望将其设置为其他远程源。

我尝试删除原始的(克隆自)远程源。

git remote rm origin

虽然它删除了原始远程,但没有解决git push问题。我仍然会收到以下错误信息:

  

致命错误:未配置推送目标。请在命令行中指定URL,或使用配置远程存储库...

我也尝试过调整:

git remote set-url --push myfork origin

还有其他选项,但似乎都不起作用(也许是因为我太快删除了原始远程?)

根据这里的答案,我尝试更改:

git config push.default upstream (or matching)

但是两者都没有起作用。


是的,但我的评论是默认消息,当您将问题标记为重复时。我这样做是因为我认为这个问题应该被关闭,作为我评论中链接的问题的副本。 - BuZZ-dEE
这个问题是在你的问题之前3年提出的。 - BuZZ-dEE
1
确实如此,但是这种行为既过于苛刻又带有滥用的倾向,关闭一个七年前的问题,并没有对社区有任何帮助。 - alonisser
我认为这对社区有所帮助。如果有人搜索这个主题,相关的问题会被链接起来。 - BuZZ-dEE
非常有用,谢谢 :) - brouk.develop
显示剩余3条评论
14个回答

7
git手册页面中,您会找到以下内容:

remote.pushDefault
默认推送的远程分支。覆盖所有分支的branch.<name>.remote设置,并被特定分支的branch.<name>.pushRemote设置所覆盖。


3

git push -u origin head 是我在寻找的。


这是它为我解决的问题:

fatal: The current branch task/PLAT-1924-datagrid-tool-panel-scrollbar has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin task/PLAT-1924-datagrid-tool-panel-scrollbar

➜  frontend git:(task/PLAT-1924-datagrid-tool-panel-scrollbar) git push -u origin head

不必使用鼠标复制Git中的建议(git push --set-upstream origin task/PLAT-1924-datagrid-tool-panel-scrollbar),然后粘贴和运行它,我可以使用键盘快捷方式或别名来输入 git push -u origin head,并且不需要指定分支。

更新:奇怪的是,今天我遇到了这个错误。在上面的命令中将小写的head改为大写解决了这个问题。

感谢https://dev59.com/02Ag5IYBdhLWcg3wm776#23402125


1
"

git remote set-url --push origin

应该可行,如您所提到的,但需要明确提供 url 而不是替代的远程名称,例如:"
git remote set-url --push origin git@github.com:contributor/repo.git

您可以通过执行 git remote -v 来确认是否生效。例如:
λ ~/go/src/github.com/stretchr/testify/ master git remote -v
fork    git@github.com:contributor/testify.git (fetch)
fork    git@github.com:contributor/testify.git (push)
origin  git@github.com:stretchr/testify (fetch)
origin  git@github.com:contributor/testify.git (push)

0
文档中所说:

当命令行没有指定要使用 <repository> 参数推送到哪里时,会查询当前分支的 branch.*.remote 配置以确定要推送到哪里。如果该配置缺失,则默认为 origin


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接