我遇到了一个问题,我试图将一个本地分支推送到一个远程分支,这样我就可以创建一个拉取请求到主分支。我正在使用:git push origin brachname这似乎失败了,而是推送到主远程分支(这不是很好)。如果我显式引用本地和远程分支(即:branchname:branchname)它工作得很好。看起来要么是我的git配置有问题,要么是我创建本地分支的方式有问题。任何帮助将不胜感激。
git push origin brachname
lpwwtiir1#
看起来您正在**master**分支上,并试图将其推送到另一个分支。
master
设置/更新跟踪分支
git〈1.8:git branch --set-upstream branch_name remote/branch_namegit〉1.8:git branch branch_name --set-upstream-to remote/branch_name您当前的追踪信息在您的.git/config文件中
git branch --set-upstream branch_name remote/branch_name
git branch branch_name --set-upstream-to remote/branch_name
.git/config
新建一个新的分支,名称为所需名称
git checkout -b <new_branch> git push origin <new_branch>
git会将你当前的分支名称推送到远程分支(假设你没有更改跟踪分支)
重命名分支(跟踪分支也会更新)
或者你可以使用-u开关:git branch branch_name -u remote/branch_name
git branch branch_name -u remote/branch_name
xghobddn2#
试试下面的
git push -u origin <branch_name>
如果您有权限将本地分支推送到远程存储库,它应该通过
aelbi1ox3#
在将一个新的和最近拉取的分支的本地示例从develop重命名为origin-develop后,我遇到了类似的问题。分支是从远程存储库origin中获取的。在重命名之后,我给出的一个通用的push命令总是试图推送到origin/master。即,
develop
origin-develop
origin
origin/master
$ git push To github.com:<USER>/<REPO>.git ! [rejected] master -> master (non-fast-forward) error: failed to push some refs to 'github.com:<USER>/<REPO>.git'
我尝试使用git branch origin develop,但这并没有解决问题。相反,我得到了错误
git branch origin develop
$ git push origin develop error: src refspec develop does not match any error: failed to push some refs to 'github.com:<USER>/<REPO>.git'
使用git remote show origin命令可以让我看到,虽然本地分支origin-develop被正确设置为pull(可能是因为我使用pull命令创建了本地分支),但它缺少push设置。
git remote show origin
Local branches configured for 'git pull': <snip> origin-develop merges with remote develop <snip> Local refs configured for 'git push': <snip>
我能够通过使用命令修复我的问题
git push origin origin-develop:develop
这是可行的,但我不认为它 * 解决 *,因为我必须使用这个命令每次我想将这个分支推到远程。如果我只使用git push,我会得到! [rejected] master -> master (non-fast-forward)错误。我的理解是,我的pull命令设置了遥控器用于拉,但不是推。因为没有定义远程推送,所以默认推送到master。我不明白的是如何永久更改我的配置,以便git push按预期工作。我试过使用git branch -u,但得到了相同的行为(i.即不能推动)。我想知道push -all选项现在是默认的,错误消息独立于分支origin-develop。
git push
! [rejected] master -> master (non-fast-forward)
pull
git branch -u
-all
3条答案
按热度按时间lpwwtiir1#
看起来您正在**
master
**分支上,并试图将其推送到另一个分支。如何能够推送到不同的分支名称?
设置/更新跟踪分支
git〈1.8:
git branch --set-upstream branch_name remote/branch_name
git〉1.8:
git branch branch_name --set-upstream-to remote/branch_name
您当前的追踪信息在您的
.git/config
文件中新建一个新的分支,名称为所需名称
git会将你当前的分支名称推送到远程分支(假设你没有更改跟踪分支)
重命名分支(跟踪分支也会更新)
或者你可以使用-u开关:
git branch branch_name -u remote/branch_name
xghobddn2#
试试下面的
如果您有权限将本地分支推送到远程存储库,它应该通过
aelbi1ox3#
在将一个新的和最近拉取的分支的本地示例从
develop
重命名为origin-develop
后,我遇到了类似的问题。分支是从远程存储库origin
中获取的。在重命名之后,我给出的一个通用的push命令总是试图推送到
origin/master
。即,我尝试使用
git branch origin develop
,但这并没有解决问题。相反,我得到了错误使用
git remote show origin
命令可以让我看到,虽然本地分支origin-develop
被正确设置为pull(可能是因为我使用pull命令创建了本地分支),但它缺少push设置。我能够通过使用命令修复我的问题
这是可行的,但我不认为它 * 解决 *,因为我必须使用这个命令每次我想将这个分支推到远程。如果我只使用
git push
,我会得到! [rejected] master -> master (non-fast-forward)
错误。我的理解是,我的
pull
命令设置了遥控器用于拉,但不是推。因为没有定义远程推送,所以默认推送到master
。我不明白的是如何永久更改我的配置,以便
git push
按预期工作。我试过使用git branch -u
,但得到了相同的行为(i.即不能推动)。我想知道push-all
选项现在是默认的,错误消息独立于分支origin-develop
。