我放弃了! 每当我试图推动时,我都会变得愚蠢:
! [rejected] master -> master (non-fast forward)
error: failed to push some refs to '[email protected]:companyX/projectX.git'
我们的团队有一个新的 git 设置。我现在没有创建私有分支,而是分叉了我们的主存储库(在 github 上)来创建我自己的副本。
在某些时候我所做的是:
$ git fetch upstream master:upstreammaster
这是我当前的设置::
$ git branch
master
* upstreammaster
$ git remote -v
origin [email protected]:userX/projectX.git
upstream [email protected]:companyX/projectX.git
其中 userX 是我的私人存储库。
所以我去对我的upstreammaster分支进行一些更改,并从“upstream master”拉取。 一切都融合在一起了:
$ git pull upstream master
remote: Counting objects: 95, done.
remote: Compressing objects: 100% (60/60), done.
remote: Total 60 (delta 54), reused 0 (delta 0)
Unpacking objects: 100% (60/60), done.
From [email protected]:companyX/projectX
* branch master -> FETCH_HEAD
Merge made by recursive.
stuff | 165 ++++++++++++--------
stuff | 35 ++--
stuff | 107 ++++++++++---
stuff | 105 ++++++++++---
stuff | 24 ++--
stuff | 9 +-
stuff | 53 +++----
stuff | 44 +++---
stuff | 52 +++----
stuff | 32 +----
stuff | 4 +-
stuff | 138 ++++++++---------
stuff | 58 ++++----
stuff | 115 ++++++++------
stuff | 5 +-
stuff | 39 ++---
stuff | 28 ++--
17 files changed, 560 insertions(+), 453 deletions(-)
但是当我尝试这样做时:
$ git push upstream master
To [email protected]:companyX/projectX.git
! [rejected] master -> master (non-fast forward)
error: failed to push some refs to '[email protected]:companyX/projectX.git'
任何帮助将不胜感激!如果需要澄清请询问,我会回复!
在进行推送时,尝试为上游 master 指定 refspec:
git push upstream upstreammaster:master
贾瑞特·哈迪是正确的。 或者,首先将您的更改合并回 master,然后尝试推送。 默认情况下,
git push
会推送名称与远程设备匹配的所有分支,而不推送其他分支。 所以这是你的两个选择——要么像 Jarret 所说的那样明确指定它,要么合并回一个公共分支,然后推送。
Git 邮件列表上对此进行了讨论,很明显这种行为不会很快改变——许多开发人员在他们的工作流程中依赖这种行为。
编辑/澄清
假设你的
upstreammaster
分支已准备好推送,那么你可以这样做:
从上游拉取任何更改。
$ git pull 上游大师
切换到我本地的master分支
$ git checkout master
合并来自
upstreammaster
的更改
$ git 合并upstreammaster
向上推送我的更改
$ git 向上游推送
在推送之前您可能想要做的另一件事是
rebase
对上游/主控进行更改,以便您的提交全部放在一起。 您可以将其作为上面 #1 和 #2 之间的单独步骤来执行 (git rebase upstream/master
),也可以将其作为拉动的一部分来执行 (git pull --rebase upstream master
)
首次使用
git pull https://github.com/username/repository master
然后尝试
git push -u origin master
首先,尝试从您尝试推送到的相同参考规范中提取。
如果这不起作用,您可以使用
git push
强制执行 git push -f <repo> <refspec>
,但要小心:此方法可能会导致远程存储库上的引用被删除。
实际上我遇到了同样的错误,但下面的评论对我有用
git push -f origin master
您的“上游”存储库是裸存储库吗?我遇到了同样的错误,但是当我更改为 bare 时,它们不再发生。
如果不起作用,请尝试:
git pull --allow-unrelated-histories <repo> <branch>
然后做:
git push --set-upstream origin master
如果推送请求显示被拒绝,请先尝试从您的 github 帐户拉取,然后尝试推送。
例如:
就我而言,它给出了一个错误-
! [rejected] master -> master (fetch first)
error: failed to push some refs to 'https://github.com/ashif8984/git-github.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
****所以我所做的是-****
$ git pull
$ git push
代码已成功推送到我的 Github 帐户中。
我的同事有额外的错误:
Ask a project Owner or Maintainer to create a default branch
原来他在 git repo (Gitlab) 中没有足够的权限。当他的访问级别升级时,他能够推送。
nobudy 说写答案来解决推送问题。如何解决它。哦不......