我想改变Git的默认远程分支目标,这样我就可以

git push

而不是:

git push upstream

目前,这是设置为原始远程,我想将其设置为不同的远程。

我试图删除原(克隆)远程

git remote rm origin

把原来的遥控器弄掉了。但不能解决git推送的问题。我仍然得到:

fatal:没有配置推送目标。对象中指定URL 命令行或配置远程存储库使用…

我还试着玩:

git remote set-url --push myfork origin

和其他选项,但似乎没有工作(可能是因为我删除了起源远程太快?)

下面的答案我试着改变:

git config push.default upstream (or matching)

但这两种方法都不奏效。


当前回答

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 push -u origin head,而不是使用我的鼠标向上复制Git的建议(Git push -set-upstream origin task/PLAT-1924-datagrid-tool-panel-scrollbar),然后粘贴并运行它,它不需要是分支特定的。

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

感谢https://stackoverflow.com/a/23402125/470749。

其他回答

要更改哪个上游远程“连接”到您的分支,请使用带有上游配置标志的git branch命令。

首先确保远程存在:

Git远程-vv

为当前(签出)分支设置首选的远程:

Git分支——set-upstream-to <remote-name>

验证分支是否使用正确的上游远程设置:

git 分支 -vv

我刚刚发现的另一个解决这个问题的技术(即使我先删除了origin,这似乎是一个错误)是直接操纵git配置:

git config remote.origin.url url-to-my-other-remote

看看你的repo中的.git/config可能会很有帮助,它会列出所有的遥控器,以及每个分支的默认遥控器

eg.

[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/*

您可以对该文件进行手动更改,以删除不需要的远程,或者更新您拥有的不同分支的默认远程

注意!当更改或删除遥控器时,请确保在这个配置文件中更新对它的所有引用

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 push -u origin head,而不是使用我的鼠标向上复制Git的建议(Git push -set-upstream origin task/PLAT-1924-datagrid-tool-panel-scrollbar),然后粘贴并运行它,它不需要是分支特定的。

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

感谢https://stackoverflow.com/a/23402125/470749。

在git的手册中,你会发现以下内容:

remote.pushDefault 默认情况下要推到的遥控器。覆盖分支。<名称>。所有分支的远程,并被分支覆盖。用于指定分支的pushRemote。